Senza il reindirizzamento, Luc Vu o Erik Konstantopoulos indicano fuori a:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
" Come creare un file di testo vuoto da un file batch? " (2008) indica anche:
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 ne menziona uno originale :
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
Nello stesso spirito, Samuel suggerisce nei commenti :
quello più corto che uso è fondamentalmente quello di Nomad:
.>out.txt
Dà un errore:
'.' is not recognized as an internal or external command
Ma questo errore è su stderr. E >
reindirizza solo stdout, dove non è stato prodotto nulla .
Da qui la creazione di un file vuoto . Il messaggio di errore può essere ignorato qui.
(Risposta originale, novembre 2009)
echo.>filename
( echo ""
metterebbe effettivamente "" nel file! E echo
senza "." metterebbe " Command ECHO activated
" nel file ...)
Nota: il file risultante non è vuoto ma include una sequenza di righe di ritorno: 2 byte.
Questa discussione indica una vera soluzione batch per un vero file vuoto :
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
" <nul
" Reindirizza una nul
risposta al set/p
comando, che farà in modo che la variabile utilizzata rimanga invariata. Come al solito set/p
, la stringa a destra del segno di uguale viene visualizzata come prompt senza CRLF.
Dato che qui la "stringa a destra del segno di uguale" è vuota ... il risultato è un file vuoto.
La differenza con cd. > filename
(che è menzionata nella risposta di Patrick Cuff e produce anche un file di lunghezza di 0 byte) è che questo "bit di reindirizzamento" (il <nul...
trucco) può essere usato per echeggiare le linee senza alcun CR :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
Il dir
comando dovrebbe indicare la dimensione del file come 11 byte: " helloworld!
".