Sin redirección, Luc Vu o Erik Konstantopoulos apuntan a cabo a:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
" ¿Cómo crear un archivo de texto vacío a partir de un archivo por lotes? " (2008) también apunta a:
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 una 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
En el mismo espíritu, Samuel sugiere en los comentarios :
el más corto que uso es básicamente el de Nomad:
.>out.txt
Sí da un error:
'.' is not recognized as an internal or external command
Pero este error está en stderr. Y >
solo redirige stdout, donde no se ha producido nada .
De ahí la creación de un archivo vacío . El mensaje de error puede ignorarse aquí.
(Respuesta original, noviembre de 2009)
echo.>filename
(¡ echo ""
realmente pondría "" en el archivo! Y echo
sin el '.' pondría " Command ECHO activated
" en el archivo ...)
Nota: el archivo resultante no está vacío, pero incluye una secuencia de línea de retorno: 2 bytes.
Esta discusión apunta a una verdadera solución por lotes para un archivo vacío real :
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
El " <nul
" canaliza una nul
respuesta al set/p
comando, lo que hará que la variable utilizada permanezca sin cambios. Como es habitual con set/p
, la cadena a la derecha del signo igual se muestra como un mensaje sin CRLF.
Como aquí la "cadena a la derecha del signo igual" está vacía ... el resultado es un archivo vacío.
La diferencia con cd. > filename
(que se menciona en la respuesta de Patrick Cuff y también produce un archivo de 0 bytes de longitud) es que este "bit de redireccionamiento" (el <nul...
truco) se puede utilizar para repetir líneas sin ningún CR :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
El dir
comando debe indicar el tamaño del archivo como 11 bytes: " helloworld!
".