Sem redirecionamento, Luc Vu ou Erik Konstantopoulos apontar para fora para:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
" Como criar um arquivo de texto vazio a partir de um arquivo em lotes? " (2008) também aponta para:
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 menciona um 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
No mesmo espírito, Samuel sugere nos comentários :
o menor que eu uso é basicamente o de Nomad:
.>out.txt
Isso dá um erro:
'.' is not recognized as an internal or external command
Mas esse erro está no stderr. E >
apenas redireciona o stdout, onde nada foi produzido.
Daí a criação de um arquivo vazio . A mensagem de erro pode ser desconsiderada aqui.
(Resposta original, novembro de 2009)
echo.>filename
( echo ""
na verdade colocaria "" no arquivo! E echo
sem o '.' colocaria " Command ECHO activated
" no arquivo ...)
Nota: o arquivo resultante não está vazio, mas inclui uma sequência de linhas de retorno: 2 bytes.
Esta discussão aponta para uma solução em lote real para um arquivo vazio real :
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
O " <nul
" canaliza uma nul
resposta ao set/p
comando, o que fará com que a variável usada permaneça inalterada. Como sempre set/p
, a sequência à direita do sinal de igual é exibida como um prompt sem CRLF.
Como aqui a "string à direita do sinal de igual" está vazia ... o resultado é um arquivo vazio.
A diferença com cd. > filename
(mencionada na resposta de Patrick Cuff e também produz um arquivo com 0 bytes) é que esse "pequeno redirecionamento" (o <nul...
truque) pode ser usado para ecoar linhas sem nenhum CR :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
O dir
comando deve indicar o tamanho do arquivo como 11 bytes: " helloworld!
".