147 votos

Cómo crear un archivo vacío en la línea de comandos?

Cómo crear un archivo vacío en el DOS/Windows de la línea de comandos?

He intentado:

copy nul > file.txt

pero siempre se muestra que un archivo se ha copiado.

¿Hay algún otro método en el estándar de cmd?

Debe ser un método que no requiere el contacto comando de Cygwin o cualquier otro no estándar de los comandos. El comando que se debe ejecutar desde una secuencia de comandos para las pulsaciones de teclas no se puede utilizar.

177voto

VonC Puntos 414372

"Cómo crear archivo de texto vacío desde un archivo por lotes?" (2008) también señala:

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

Nómada menciona a la 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

(Respuesta Original, noviembre de 2009)

echo.>filename

(echo "" realmente pondría "" en el archivo! Y echo sin el '.' iba a poner "Command ECHO activated" en el archivo...)

Nota: el archivo resultante no es vacío , sino que incluye una línea de retorno de la secuencia: 2 bytes.


Esta discusión apunta a un cierto lote de solución para un verdadero vacío de archivo:

 <nul (set/p z=) >filename

 dir filename
 11/09/2009  19:45                 0 filename
 1 file(s)                         0 bytes

El "<nul" tuberías nul de respuesta a las set/p de comandos, lo que hará que el variable que se utiliza para mantenerse sin cambios. Como de costumbre, con set/p, la cadena a la a la derecha del signo igual se muestra como un símbolo del sistema con no CRLF.

Desde aquí la "cadena de caracteres a la derecha del signo de igualdad" está vacío... el resultado es un archivo vacío.


La diferencia con cd. > filename (que se menciona en Patrick Brazalete de la respuesta y también producir un 0-byte-archivo de longitud), es que este "pedacito de redirección" ( <nul... truco) puede utilizarse para la eco de las líneas sin ningún tipo de CR:

<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt

El comando dir debe indicar el tamaño del archivo de 12 bytes: "hello world!".

169voto

Justin Puntos 671

Intente esto:

type NUL > 1.txt

esto definitivamente va a crear un archivo vacío.

46voto

qid Puntos 1289

Si usted realmente desea un totalmente archivo vacío, sin ninguna salida a stdout, puede engañar un poco:

copy nul file.txt > nul

Simplemente redirigir stdout a nul y la salida de la copia desaparece.

37voto

Patrick Cuff Puntos 13362

He aquí otra manera:

cd. > filename

17voto

nash Puntos 1644

Leyendo los comentarios en mi post, tengo que admitir que no he leído la pregunta.

En la línea de comandos de Windows, de una forma sería utilizar fsutil:

fsutil file createnew <filename> <size>

Un ejemplo:

fsutil file createnew myEmptyFile.txt 0

A continuación es para *nix de la línea de comandos.

touch filename

Este comando cambia la fecha de modificación de un archivo o se crea si el archivo no se encuentra.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: