Comment créer un fichier vide sur la ligne de commande DOS/Windows?
J'ai essayé:
copy nul > file.txt
mais il indique toujours qu'un fichier a été copié.
Existe-t-il une autre méthode dans la cmd standard?
Cette méthode ne nécessite pas la commande touch de Cygwin ou toute autre commande non standard. La commande doit être exécutée à partir d'un script pour que les frappes au clavier ne puissent pas être utilisées.
Sans redirection, Luc V ou Erik Konstantopoulospointout à:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
" Comment créer un fichier texte vide à partir d'un fichier batch? " (2008) indique également:
type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive
Nomad mentionne n original :
C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.
C:\Users\VonC\prog\tests>dir
Folder C:\Users\VonC\prog\tests
27/11/2013 10:40 <REP> .
27/11/2013 10:40 <REP> ..
27/11/2013 10:40 0 empty_file
Dans le même esprit, Samuel suggère dans les commentaires :
le plus court que j'utilise est fondamentalement celui de Nomad:
.>out.txt
Cela donne une erreur:
'.' is not recognized as an internal or external command
Mais cette erreur est sur stderr. Et >
ne redirige que stdout, où rien ont été produits.
D'où la création d'un fichier vide. Le message d'erreur peut être ignoré ici.
(Réponse originale, novembre 2009)
echo.>filename
(echo ""
mettrait réellement "" dans le fichier! Et echo
sans le '.' Mettrait "Command ECHO activated
" dans le fichier ...)
Remarque: le fichier résultant n'est pas vide mais inclut une séquence de retour: 2 octets.
This discussion pointe vers une vraie solution batch pour un vrai vide fichier:
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
Le "
<nul
" envoie une réponsenul
à la commandeset/p
, ce qui a pour effet que la variable utilisée reste inchangée. Comme d'habitude avecset/p
, la chaîne située à droite du signe égal est affichée sous la forme d'une invite sans CRLF.
Puisque ici la "chaîne à la droite du signe égal" est vide ... le résultat est un fichier vide.
La différence avec cd. > filename
(qui est mentionné dans réponse de Patrick Cuff et produit également un fichier de 0 octet de longueur) est que ce "bit de redirection" (le <nul...
truc) peut être utilisé pour faire écho à des lignes sans CR :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
La commande dir doit indiquer la taille du fichier sous forme de 12 octets: "
hello world!
".
Essaye ça:
type NUL > 1.txt
cela va certainement créer un fichier vide.
Voici un autre moyen:
cd. > filename
Si vous voulez vraiment un fichier totalement vide, sans aucune sortie sur stdout, vous pouvez tricher un peu:
copy nul file.txt > nul
Il suffit de rediriger stdout sur nul et la sortie de la copie disparaît.
Ouvrir le fichier:
type file.txt
Nouveau fichier:
Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>
Modifier le contenu:
notepad file.txt
Copier
copy file1.txt file1Copy.txt
Renommer
rename file1.txt file1_rename.txt
Supprimer le fichier:
del file.txt
En lisant les commentaires sur mon post, je dois admettre que je n’ai pas bien lu la question.
Sur la ligne de commande Windows, une solution consiste à utiliser fsutil :
fsutil file createnew <filename> <size>
Un exemple:
fsutil file createnew myEmptyFile.txt 0
Ci-dessous, la ligne de commande * nix.
touch filename
Cette commande modifie la date de modification d'un fichier ou le crée si le fichier n'est pas trouvé.
echo "" > filename
Je crois que cela fonctionne sous Windows/DOS, mais ma dernière expérience pratique avec l’un ou l’autre date de loin. Je sais pertinemment que cela fonctionne sur n'importe quel système d'exploitation compatible POSIX .
call>file.txt
c'est la façon la plus propre que je connaisse.
Vous pouvez écrire votre propre contact.
//touch.cpp
#include <fstream>
#include <iostream>
int main(int argc, char ** argv;)
{
if(argc !=2)
{
std::cerr << "Must supply a filename as argument" << endl;
return 1;
}
std::ofstream foo(argv[1]);
foo.close();
return 0;
}
cd > filename.cfg
fonctionné lors de la création d’un fichier dans C:/Program Files où vous n’avez pas le droit de créer des fichiers directement.
copier avec SomeFile.txt Enter
Ctrl-ZEnter
Encore une autre méthode qui crée un fichier de zéro octet:
break > "file.txt"
Utilisez copy > your_file_name.extension
dans la commande Invite comme
P:\excecise> copy > Sample.txt
Essayez ceci: abc > myFile.txt
Tout d’abord, un fichier portant le nom myFile.txt
sera créé dans le répertoire de travail actuel (dans l’invite de commande). Ensuite, il lancera la commande abc
qui n’est pas une commande valide. De cette manière, vous obtenez un nouveau fichier vide portant le nom myFile.txt
.
afin que vous puissiez créer un fichier vide avec
'' > newfile.txt
accédez au répertoire et tapez la commande ci-dessus dans la fenêtre PowerShell.
Notez que cela ne fonctionnera pas avec l'invite de commande windows.
Vous pouvez utiliser l'ancienne commande
copy con file_name.ext
ne tapez rien, appuyez simplement sur F6 pour l'enregistrer, mais le message "Fichier copié" sera imprimé, mais il sera vide lorsque vous l'ouvrirez.
Vous pouvez aussi utiliser:
echo. 2>foo
La sortie de débogage pour echo.
sera presque certainement vide.
type nul>filename
créera un nouveau fichier vide.
UPDATE: De plus, copy nul filename
fonctionne sans redirection (solution plus évidente).
J'ai lu beaucoup de discussions mais ce n'est pas le chemin le plus court.
Veuillez utiliser la commande:
>copy /b NUL empty_file.txt
Cela a fonctionné pour moi
echo > file.extension
Voici une autre façon que j'ai trouvée aujourd'hui, j'ai eu des idées d'autres réponses mais cela a fonctionné
sometext > filename.extension
Par exemple.
xyz > emptyfile.txt //this would create an empty zero byte text file
abc > filename.mp4 //this would create an zero byte MP4 video media file
Cela afficherait un message d'erreur dans l'invite de commande qui,
xyz
n'est pas une commande interne ou externe, un programme utilisable ou un fichier de commandes.
Mais la chose étrange que j'ai trouvée est que le fichier est créé dans le répertoire, même si la commande n'est pas une commande Windows standard.
Sous Windows J'ai essayé de le faire
echo off > fff1.txt
et il a créé un fichier nommé fff1.txt avec une taille de fichier de 0ko
Je n'ai trouvé aucune commande autre que celle qui pourrait créer un fichier vide.
Remarque: Vous devez être dans le répertoire dans lequel vous souhaitez créer le fichier.
Encore une autre manière:
copy nul 2>empty_file.txt
J'ai juste essayé dans Windows
copy con file.txt
puis appuyez Enter Touche puis appuyez sur Ctrl+ZEnter
Et sa a fonctionné pour moi.
Pour Ubuntu, je crée généralement un fichier avec la commande VI
vi file.txt
Il ouvrira le fichier puis appuiera sur ESC puis tapez : wp puis appuyez sur enter clé. Cela créera un nouveau fichier avec des données vides.
Pour créer tout type de fichier, vous pouvez utiliser le code suivant
type nul> (nom_fichier). (type_fichier)
Par exemple. Si vous voulez créer un fichier texte alors
type nul> demo.txt
Si vous voulez créer un fichier javascript alors
type nul> demo.js
echo '' > %1
. (nommez le fichier comme touch.bat)touch temp.txt
crée un fichier temp.txt)vérifier this article pour plus d'informations.
Aujourd'hui, j'en ai découvert un nouveau :)
Cela modifiera le titre de la fenêtre de ligne de commande, mais créera également un fichier vide.
title > file.txt
Voici encore un autre moyen:
rem/ > file.ext
La barre oblique /
est obligatoire; sans cela, la partie de redirection a été commentée par rem
.
Exécutez CMD en mode administrateur et tapez ceci:
NUL > file_name.extention
ou vous tapez ceci
echo .> file_name.extention
echo.|set /p=>file
echo.
supprimer la "Commande ECHO activée"
|set /p=
empêche newline (et le fichier est maintenant 0 octet)
En tant qu'utilisateur VIM sous Windows, je n'ai pas réussi à trouver la réponse dans le fil de la question.
En tant que solution de ce fil , veuillez d'abord installer le gvim .
Lors de l'installation, n'oubliez pas de cocher l'option "Créer des fichiers .bat pour une utilisation en ligne de commande" comme indiqué ci-dessous.
Certains fichiers bat comme vim.bat et gvim.bat seront installés sous C:\Windows . Ajoutez C:\Windows au système Chemin si ce n’est pas fait.
Relancez le cmd.exe et tapez gvim empty_file.txt
, vous lancerez le gvim pour éditer le fichier vide à partir de zéro. Si vous ne voulez pas quitter votre console "Invite de commandes", tapez plutôt vim empty_file.txt
.
J'espère que cette réponse pourra aider ceux qui souhaitent lancer VIM à partir de l'invite de commande Windows lors de la création d'un fichier vide.
Commencez par créer votre fichier pour qu'il existe:
echo . > myfile.txt
Remplacez ensuite le fichier créé par une version vide à l'aide de la commande copy
:
copy /y nul myfile.txt