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 pour faire:
touch index.html app.js style.css
Existe-t-il un équivalent Windows de l'utilisation du «toucher»? Dois-je créer ces fichiers à la main (et les modifier pour changer l'horodatage) afin d'implémenter ce type de commande? Cela ne semble pas très ... nodal ...
touch
. Autre discussion ici: superuser.com/questions/10426/… et la bibliothèque Cygwin est un ensemble d'outils commun des commandes Unix sous Windows.touch
pour créer un fichier vide avec PowerShell?Réponses:
dans le type de fenêtre cmd:
Cela créera 0 octet dans le fichier your_file.txt.
Une autre façon de le faire est d'utiliser la commande echo :
écho. - créera un fichier avec une ligne vide dedans.
Modifié le 01/04/2019:
Si vous avez besoin de conserver le contenu du fichier, utilisez >> au lieu de>
Exemple
Modifié le 07/04/2020
Vous pouvez également utiliser la commande d' appel .
Exemple:
la source
access denied
dans la console. La deuxième option fonctionne très bien!>>
du premier ne fait rien, le second ajoute une ligne à la fin du fichier. La bonne réponse est superuser.com/questions/10426/…Windows n'inclut pas nativement une
touch
commande.Vous pouvez utiliser l'une des versions publiques disponibles ou vous pouvez utiliser votre propre version. Enregistrez ce code sous
touch.cmd
et placez-le quelque part dans votre cheminIl itérera sur sa liste d'arguments, et pour chaque élément s'il existe, mettra à jour l'horodatage du fichier, sinon, le créera.
la source
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 utiliser: copier NUL filename.txt
la source
type NUL > filename
(crée un fichier de 0 octets)type NUL >> filename
La réponse est fausse, cela ne fonctionne que lorsque le fichier n'existe pas. Si le fichier existe, l'utilisation du premier ne fait rien, le second ajoute une ligne à la fin du fichier.
La bonne réponse est:
Je l'ai trouvé ici: /superuser/10426/windows-equivalent-of-the-linux-command-touch/764721#764721
la source
Je suis surpris de voir combien de réponses ici sont tout simplement fausses . Ne rien faire écho dans un fichier remplira le fichier avec quelque chose comme
ECHO is ON
, et essayer de faire écho$nul
dans un fichier sera littéralement placé$nul
dans le fichier. De plus, pour PowerShell, l'écho$null
dans un fichier ne créera pas réellement un fichier de 0 Ko, mais quelque chose encodé commeUCS-2 LE BOM
, ce qui peut devenir compliqué si vous devez vous assurer que vos fichiers n'ont pas de marque d'ordre des octets.Après avoir testé toutes les réponses ici et référencé des réponses similaires, je peux garantir qu'elles fonctionneront par shell de console. Changez simplement
FileName.FileExtension
le chemin complet ou relatif du fichier que vous vouleztouch
; merci à Keith Russell pour leCOPY NUL FILE.EXT
mise à jour:CMD avec mises à jour d'horodatage
copy NUL FileName.FileExtension
Cela créera un nouveau fichier nommé tout ce que vous avez placé au lieu d'
FileName.FileExtension
une taille de 0 octet. Si le fichier existe déjà, il se copiera essentiellement sur place pour mettre à jour l'horodatage. Je dirais que c'est plus une solution de contournement qu'une fonctionnalité 1: 1 avectouch
mais je ne connais aucun outil intégré pour CMD qui peut accomplir la mise à jour de l'horodatage d'un fichier sans changer aucun de ses autres contenus.CMD sans mises à jour d'horodatage
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Powershell avec mises à jour d'horodatage
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
Oui, il fonctionnera dans la console comme une seule ligne; aucune obligation de le placer dans un fichier de script PowerShell.
PowerShell sans mises à jour d'horodatage
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
la source
fsutil file CreateNew FileName.FileExtension 0
parcopy NUL Filename.FileExtension
, car ce dernier est plus court et fait la même chose.copy
plusfsutil
mais il a été un moment ... Je suis sûr que ce que je même apprisfsutil
haha! Je vais essayer de comprendre pourquoi ...Utilisez la commande suivante sur votre ligne de commande:
Les informations de paramètres 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éé
la source
NULL
s ... bizarre ... alors utilisez simplement 0 ... génère une erreur si vous sautez le requiredSize .. .Sur Windows Power Shell, vous pouvez utiliser la commande suivante:
ou
la source
'New-Item' is not recognized as an internal or external command
Vous pouvez reproduire la fonctionnalité de touch avec la commande suivante:
Cela tente d'exécuter un programme appelé
$
, mais s'il$
n'existe pas (ou n'est pas un exécutable qui produit une sortie), aucune sortie n'est produite par celui-ci. Il s'agit essentiellement d'un piratage de la fonctionnalité, mais vous obtiendrez le message d'erreur suivant:Si vous ne voulez pas le message d'erreur, vous pouvez faire l'une des deux choses suivantes:
Ou:
le
type
commande tente d'afficher le contenu de nul, ce qui ne fait rien mais renvoie un EOF (fin de fichier) lors de la lecture.2>nul
envoie la sortie d'erreur (sortie 2) à nul (qui ignore toutes les entrées lors de l'écriture). Évidemment, la deuxième commande (avec2>nul
) est rendue redondante par latype
commande car elle est plus rapide à taper. Mais au moins, vous avez maintenant l'option et les connaissances.la source
%ERRORLEVEL%
toujours différent de zéro. Vous pouvez résoudre ce problème en ajoutant un noop|| cd.
, mais cela définit toujours l'erreur sur 0, ce qui peut ne pas être ce que vous voulez si le «toucher» échoue.Pas de commande - ni
type
niecho
- n'est nécessaire pour émuler la commande 'touch' d'Unix / Mac OS X dans un terminal Windows Powershell. Utilisez simplement le raccourci suivant:Cela créera un fichier vide nommé 'filename' à votre emplacement actuel. Utilisez toute extension de nom de fichier dont vous pourriez avoir besoin, par exemple «.txt».
Source: /superuser/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (voir commentaires)
la source
echo
$null > filename
envoyez cette sortie vide à filename (si vous attrapez ma dérive).echo
Dans le terminal de ligne de commande standard (cmd) dont vous avez besoinecho
. Désolé pour la confusion.Vous pouvez également utiliser copy con [filename] dans une fenêtre de commande Windows (cmd.exe):
Cela créera un fichier nommé
yourfile.txt
dans le répertoire local.la source
comme mentionné
ça peut être n'importe quel fichier, avec n'importe quelle extension alors faites
cela ouvrira votre fichier dans l'éditeur de bloc-notes
la source
J'utilise
cmder
(un émulateur de ligne de commande)Il vous permet d'exécuter toutes les commandes Linux à l'intérieur d'une machine Windows.
Il peut être téléchargé sur https://cmder.net/
J'aime vraiment ça
la source
En supposant que le fichier existe et qu'il vous suffit de mettre à jour l'horodatage.
la source
Depuis le terminal de Visual Code Studio sous Windows 10, voici ce qui a fonctionné pour moi pour créer un nouveau fichier:
la source
Si Cygwin est installé sur votre PC, vous pouvez simplement utiliser l'exécutable fourni pour le toucher (également via l'invite de commande Windows):
la source
Facile, exemple avec un fichier txt
la source
$null
au fichier.Oui, vous pouvez utiliser Node for Touch Je viens de l'utiliser et cela fonctionne très bien dans Windows Cmd ou gitbash
la source
[cmd]
, et cela implique que l'OP veut une réponse prête à l'emploi pour CMD, c'est-à-dire pas d'utilitaires de ligne de commande qui ne sont pas fournis avec une installation Windows par défaut. Cela exclura pratiquement tous les langages de script, même les langages de script Windows intégrés tels que CScript, WScript et PowerShell. Le fait n'est pas que cela fonctionne dans l'environnement CMD, mais que c'est possible pour toute personne ayant accès à CMD, sans compter les problèmes d'autorisations.