Windows équivalent de "toucher" (c'est à dire la node.js façon de créer un index.html)
Sur une machine windows, j'obtiens cette erreur
"toucher" n'est pas reconnu comme une commande interne ou externe, un programme exécutable ou un fichier de commandes.
quand je suivre le instructions à faire:
touch index.html app.js style.css
Est-il un équivalent windows de l'utilisation de "toucher"? Ai-je besoin pour créer ces fichiers à la main (et de les modifier pour modifier le timestamp) afin de mettre en œuvre ce type de commande? Cela ne semble pas très ... nœud-ish...
- simple recherche sur Google vous montre beaucoup de fenêtres implémentations de
touch
. Autre discussion ici: superuser.com/questions/10426/... et la Cygwin bibliothèque est une commune de la palette d'outils des commandes Unix sous Windows. - Double Possible de cette question: stackoverflow.com/questions/26343974/...
- Double Possible de Créer un fichier avec la ligne de commande dans le Noeud
- Veuillez passer à Raghuveer réponse directement si vous avez atterri ici, à l'aide de PowerShell.
- Related post - l'Équivalent de Linux
touch
pour créer un fichier vide avec PowerShell?
Vous devez vous connecter pour publier un commentaire.
dans la fenêtre cmd type:
Cela permettra de créer de 0 octets your_file.txt fichier.
Une autre façon de le faire est d'utiliser le echo commande:
écho. - va créer le fichier avec une ligne vide en elle.
Édité sur 2019-04-01:
Si vous avez besoin de conserver le contenu du fichier >> au lieu de >
Exemple
type nul >> your_file.txt
pour préserver le contenu du fichier s'il existe déjà, tout commetouch
(retraitement henon un commentaire pour la visibilité).access denied
dans la console. La deuxième option fonctionne très bien!>>
la première ne fait rien, le second ajoute une ligne à la fin du fichier. La réponse correcte est superuser.com/questions/10426/...Windows n'intègre pas nativement comprennent un
touch
de commande.Vous pouvez utiliser n'importe laquelle des versions publiques ou vous pouvez utiliser votre propre version. Enregistrez ce code comme
touch.cmd
et le placer quelque part dans votre pathIl va itérer dessus de la liste d'arguments, et pour chaque élément, s'il existe, de mettre à jour l'horodatage du fichier, sinon, créez-la.
Vous pouvez utiliser cette commande: ECHO >> filename.txt
il va créer un fichier avec l'extension donnée dans le dossier en cours.
Mise à JOUR:
pour un fichier vide utilisation: copie NUL filename.txt
type NUL > filename
(crée un fichier de 0 octets)type NUL >> filename
La réponse est fausse, il ne fonctionne que si le fichier n'existe pas. Si le fichier existe, à l'aide de la première ne fait rien, le second ajoute une ligne à la fin du fichier.
La bonne réponse est:
Je l'ai trouvé ici: https://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch/764721#764721
Utilisez la commande suivante sur la ligne de commande:
Les paramètres info comme suit:
fsutil - système de Fichiers de l'utilitaire ( l'exécutable en cours d'exécution )
fichier - déclenche une action de fichier
createnew - l'action à effectuer (créer un nouveau fichier)
nom de fichier serait littéralement le nom du fichier
requiredSize - serait d'allouer une taille de fichier en octets dans le fichier créé
NULL
s ... bizarre ... juste utiliser 0 ... génère une erreur si vous passez le requiredSize ...Je suis surpris de voir comment beaucoup de réponses ici sont juste mal. En écho à rien dans un fichier à remplir le fichier avec quelque chose comme
ECHO is ON
, et en essayant de echo$nul
dans un fichier va littéralement lieu$nul
dans le fichier. En outre, pour PowerShell, en écho à$null
dans un fichier n'est pas réellement faire un fichier de 0 ko, mais quelque chose de codé commeUCS-2 LE BOM
, ce qui peut être gênant si vous avez besoin pour vous assurer que vos fichiers n'ont pas une marque d'ordre d'octet.Après le test ici toutes les réponses et le référencement des semblables, je peux garantir que ces travaux par environnement de la console. Il suffit de changer
FileName.FileExtension
au complet ou relatif-chemin d'accès du fichier que vous souhaiteztouch
:CMD
if not exist FileName.FileExtension (fsutil file CreateNew FileName.FileExtension 0) else (copy /b FileName.FileExtension +,,)
Cela va créer un nouveau fichier, le nom que vous avez placé à la place de
FileName.FileExtension
avec une longueur de 0 octets. Il ne fera rien à ce fichier en plus de mettre à jour l'horodatage si elle existe déjà avec leelse
s'opération de copie, similaire, mais probablement pas exactement de la même façontouch
œuvres. Je dirais que c'est plus une solution de 1:1 les fonctionnalités, mais je ne sais pas du tout intégré dans des outils de CMD qui peut accomplir la mise à jour d'un fichier d'horodatage, sans modification de son contenu.Powershell
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName
.FileExtension ).LastWriteTime = Get-Date}
Cela a la même fonctionnalité que le CMD version. Il ne plaisante pas avec un fichier existant en plus de son timestamp, et il va créer un nouveau fichier vide de ce que vous avez décidé d'utiliser à la place de
FileName.FileExtension
. Et oui, il va fonctionner sur une console comme un one-liner; pas d'obligation de le placer dans un fichier de script PowerShell.Que faire si je ne veux pas modifier le timestamp?
Si vous ne voulez pas modifier l'horodatage d'un fichier existant, il nous suffit de supprimer le
else
-clauses.CMD
if not exist FileName.FileExtension fsutil file CreateNew FileName.FileExtension 0
PowerShell
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
Vous pouvez reproduire la fonctionnalité de contact avec la commande suivante:
Ce que ce n'est tente d'exécuter un programme appelé
$
, mais si$
n'existe pas (ou n'est pas un fichier exécutable qui produit la sortie) alors pas de sortie est produite par elle. Il s'agit essentiellement d'un hack sur la fonctionnalité, cependant, vous obtiendrez le message d'erreur suivant:Si vous ne voulez pas de message d'erreur, alors vous pouvez faire une des deux choses:
Ou:
La
type
commande essaie d'afficher le contenu de nul, qui ne fait rien mais renvoie EOF (fin de fichier) lors de la lecture.2>nul
envoie erreur de sortie (sortie 2) nul (qui ne tient pas compte de tous les intrants lorsque écrites). Évidemment, la deuxième commande (avec2>nul
) est rendu superflu par l'type
de commande, car il est plus rapide à taper. Mais au moins, vous avez maintenant la possibilité et de la connaissance.Pas de commande ni
type
niecho
– est nécessaire pour émuler Unix ou Mac OS X, la touche de commande Windows Powershell terminal. Simplement utiliser le raccourci suivant:Cela va créer un fichier vide nommé "nom de fichier" à votre emplacement actuel. L'utilisation de toute extension de nom de fichier que vous pourriez avoir besoin, par exemple '.txt'.
Source: https://superuser.com/questions/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (voir les commentaires)
$null >
est le shell de commande et est justefilename
?echo
$null > filename
envoie vide à la sortie de nom (si vous attrapez ma dérive).echo
Dans la norme terminal de ligne de commande (cmd), vous devezecho
. Désolé pour la confusion.Sur windows Power Shell, vous pouvez utiliser la commande suivante:
ou
'New-Item' is not recognized as an internal or external command
Vous pouvez également utiliser copie con [nom de fichier] dans une fenêtre de commande Windows (cmd.exe):
Cela va créer un fichier nommé
yourfile.txt
dans le répertoire local.comme mentionné
il peut être n'importe quel fichier, avec n'importe quelle extension
alors ne
cela va ouvrir votre fichier dans le bloc-notes de l'éditeur
Si vous avez Cygwin installé dans votre PC, vous pouvez simplement utiliser l'exécutable fourni pour touch (également via l'invite de commande windows):
Facile, exemple avec le fichier txt
$null
pour le fichier.Oui, vous pouvez utiliser un Nœud pour le Toucher je viens de l'utiliser et de son travail tous beaux dans windows Cmd ou gitbash
[cmd]
, et cela implique que l'OP veut une réponse qui fonctionne out-of-the-box pour CMD, ce qui signifie pas de utilitaires de ligne de commande qui ne sont pas emballés avec une valeur par défaut de Windows installer. Qui s'excluent pratiquement tous les langages de script, de même intégré dans Windows langages de script comme CScript, WScript, et PowerShell. Le point n'est pas qu'il fonctionne dans le CMD env, mais que son possible pour toute personne ayant accès à CMD, pas y compris les problèmes d'autorisations.