Bez przekierowania Luc Vu lub Erik Konstantopoulos zwracają uwagę na:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
„ Jak utworzyć pusty plik tekstowy z pliku wsadowego? ” (2008) wskazuje również:
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 wspomina o oryginale :
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
W tym samym duchu Samuel sugeruje w komentarzach :
najkrótszy, którego używam, to w zasadzie ten autorstwa Nomada:
.>out.txt
Daje błąd:
'.' is not recognized as an internal or external command
Ale ten błąd dotyczy stderr. I >
tylko przekierowuje standardowe wyjście, w którym nic nie zostało wyprodukowane.
Stąd utworzenie pustego pliku. Komunikat o błędzie można tutaj pominąć.
(Oryginalna odpowiedź, listopad 2009 r.)
echo.>filename
( echo ""
wstawiłby „” do pliku! A echo
bez „.” wstawiłby „ Command ECHO activated
” do pliku ...)
Uwaga: wynikowy plik nie jest pusty, ale zawiera sekwencję linii powrotnej: 2 bajty.
Ta dyskusja wskazuje na prawdziwe rozwiązanie wsadowe dla naprawdę pustego pliku:
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
„ <nul
” Potokuje nul
odpowiedź na set/p
polecenie, co spowoduje, że zmienna pozostanie niezmieniona. Jak zwykle w set/p
przypadku łańcucha po prawej stronie znaku równości wyświetlany jest monit bez CRLF.
Ponieważ tutaj „ciąg po prawej stronie znaku równości” jest pusty ... wynikiem jest pusty plik.
Różnica w stosunku do cd. > filename
(która jest wspomniana w odpowiedzi Patricka Cuffa i powoduje również utworzenie pliku o długości 0 bajtów) polega na tym, że ten „kawałek przekierowania” ( <nul...
sztuczka) może być użyty do echa linii bez CR :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
dir
Polecenie powinno wskazywać rozmiar pliku jako 11 bajtów: „ helloworld!
”.