web-dev-qa-db-fra.com

Comment créer un fichier vide en ligne de commande sous Windows?

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.

454
Grendler

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éponse nul à la commande set/p, ce qui a pour effet que la variable utilisée reste inchangée. Comme d'habitude avec set/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!".

524
VonC

Essaye ça:

type NUL > 1.txt

cela va certainement créer un fichier vide.

259
Justin

Voici un autre moyen:

cd. > filename
96
Patrick Cuff

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.

74
qid

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
43
iCrazybest

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é.

32
nash
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 .

26
Kris
call>file.txt

c'est la façon la plus propre que je connaisse.

22
nephi12

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;
}
11
Paul Nathan
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.

8
Hydrogirl

copier avec SomeFile.txt Enter

Ctrl-ZEnter

6
DRapp

Encore une autre méthode qui crée un fichier de zéro octet:

break > "file.txt"
5
foxidrive

Utilisez copy > your_file_name.extension dans la commande Invite comme

P:\excecise> copy > Sample.txt
5
Raj Kumar Mishra

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.

5
Nomad

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.

4
Aswin 1054

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.

4
Amado Saladino

Vous pouvez aussi utiliser:

echo. 2>foo

La sortie de débogage pour echo. sera presque certainement vide.

4
Craig

type nul>filename créera un nouveau fichier vide.

Veillez excuser mon retard.

UPDATE: De plus, copy nul filename fonctionne sans redirection (solution plus évidente).

4
EKons

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

3
suhao399

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.

3
Lucky

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.

3
Omkar Agrawal

Encore une autre manière:

copy nul 2>empty_file.txt
3
GadBro

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.

2
ARJUN KP

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

2
Darshan Jain
  • créer un fichier bat avec le contenu echo '' > %1. (nommez le fichier comme touch.bat)
  • ajoutez le dossier à la variable PATH.
  • vous pouvez utiliser touch pour créer des fichiers. (Ex: touch temp.txt crée un fichier temp.txt)

vérifier this article pour plus d'informations.

2
Pranay Kumar

Essaye ça:

echo $null >> filename 

Voir: superUser

2
shireef khatab

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
1
ninix

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.

1
aschipfl

Exécutez CMD en mode administrateur et tapez ceci:

NUL > file_name.extention

ou vous tapez ceci

echo .> file_name.extention
1
Lekens
echo.|set /p=>file

echo. supprimer la "Commande ECHO activée"

|set /p= empêche newline (et le fichier est maintenant 0 octet)

0
131

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.

enter image description here

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.

0
Gearon

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
0
Dowopfan