web-dev-qa-db-fra.com

Équivalent Windows de 'touch' (c’est-à-dire le moyen node.js de créer un index.html)

Sur une machine Windows, j'obtiens cette erreur

'touch' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.

quand je suis les instructions à faire:

touch index.html app.js style.css

Existe-t-il un équivalent Windows d’utiliser «tactile»? Dois-je créer ces fichiers à la main (et les modifier pour changer l’horodatage) afin de mettre en œuvre ce type de commande? Cela ne semble pas très ... noeud-ish ...

111

dans le type de fenêtre cmd:

type nul > your_file.txt

Cela créera 0 octet dans votre fichier your_file.txt.

Une autre façon de faire consiste à utiliser la commande echo :

echo.> your_file.txt

écho. - créera un fichier avec une ligne vide.

166
Vlad Bezden

Windows n'inclut pas nativement une commande touch

Vous pouvez utiliser n'importe quelle version publique disponible ou votre propre version. Enregistrez ce code sous le nom touch.cmd et placez-le quelque part dans votre chemin.

@echo off
    setlocal enableextensions disabledelayedexpansion

    (for %%a in (%*) do if exist "%%~a" (
        pushd "%%~dpa" && ( copy /b "%%~nxa"+,, & popd )
    ) else (
        type nul > "%%~fa"
    )) >nul 2>&1

Il va parcourir la liste d'arguments, et pour chaque élément s'il existe, mettre à jour l'horodatage du fichier, sinon, le créer.

52
MC ND

Vous pouvez utiliser cette commande: ECHO >> filename.txt

il créera un fichier avec l'extension donnée dans le dossier actuel.

METTRE À JOUR:

pour un fichier vide, utilisez: copy NUL filename.txt

26
Aaron Clark

La réponse est fausse, cela ne fonctionne que lorsque le fichier n'existe pas. Si le fichier existe, utiliser le premier ne fait rien, le second ajoute une ligne à la fin du fichier. 

La bonne réponse est:

copy /b filename.ext +,,

Je l'ai trouvé ici: https://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch/764721#764721

14
stenci

Utilisez la commande suivante sur la ligne de commande:

fsutil file createnew filename  requiredSize

Les paramètres info comme suit:

fsutil - Utilitaire de système de fichiers (l'exécutable que vous exécutez) 

file - déclenche une action de fichier

createnew - l'action à effectuer (créer un nouveau fichier)

filename - serait littéralement le nom du fichier

requiredSize - allouerait une taille de fichier en octets dans le fichier créé

6
Ofer Haber

Vous pouvez répliquer la fonctionnalité de touch avec la commande suivante:

$>>filename

Cela tente d'exécuter un programme appelé $, mais si $ n'existe pas (ou n'est pas un exécutable produisant une sortie), il ne produira aucune sortie. Il s'agit essentiellement d'un piratage de la fonctionnalité, mais vous obtiendrez le message d'erreur suivant:

'$' n'est pas reconnu comme une commande interne ou externe, programme utilisable ou fichier batch.

Si vous ne voulez pas le message d'erreur, vous pouvez faire l'une des choses suivantes:

type nul >> filename

Ou:

$>>filename 2>nul

La commande type essaie d’afficher le contenu de nul, ce qui ne fait que retourner un EOF (fin du fichier) lors de la lecture. 

2>nul envoie la sortie d'erreur (sortie 2) à la valeur nulle (qui ignore toutes les entrées lors de l'écriture). Il est évident que la deuxième commande (avec 2>nul) est rendue redondante par la commande type car elle est plus rapide à taper. Mais au moins, vous avez maintenant l’option et les connaissances.

6
Keldon Alleyne

Aucune commande - ni typenor echo - n'est nécessaire pour émuler la commande "tactile" de Unix/Mac OS X dans un terminal Windows Powershell. Utilisez simplement le raccourci suivant:

$null > filename

Cela créera un fichier vide nommé "nom de fichier" à votre emplacement actuel. Utilisez n’importe quelle extension de nom de fichier dont vous pourriez avoir besoin, par exemple: '.SMS'.

Source: https://superuser.com/questions/502374/equivalent-of-linux-touch-tcreate-an-empty-file-with-powershell (voir les commentaires)

5
Oliver Schafeld

comme mentionné 

echo >> index.html

cela peut être n'importe quel fichier, avec n'importe quelle extension

notepad index.html

cela ouvrira votre fichier dans l'éditeur de bloc-notes

3
Boris

Vous pouvez également utiliser copy con [nom du fichier] dans une fenêtre de commande Windows (cmd.exe):

C:\copy con yourfile.txt [enter]
C:\CTRL + Z [enter] //hold CTRL key & press "Z" then press Enter key.
^Z
    1 Files Copied.

Cela créera un fichier nommé yourfile.txt dans le répertoire local.

3
delliottg

Sur Windows Power Shell, vous pouvez utiliser la commande suivante: 

New-Item <filename.extension>

ou 

New-Item <filename.extension> -type file

Remarque: New-Item peut être remplacé par son alias ni

1
Raghuveer

Facile, exemple avec un fichier txt

echo $null >> filename.txt
0
Thiago Maciel

Si Cygwin est installé sur votre PC, vous pouvez simplement utiliser le fichier exécutable fourni pour appuyer sur (également via l'invite de la commande windows). :

C:\cygwin64\bin\touch.exe <file_path>
0
Uri Ziv