147 votos

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

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

Lo intenté:

copy nul > file.txt

pero siempre muestra que un archivo fue copiado.

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

Debería ser un método que no requiera la tocar de Cygwin o cualquier otro comando no estándar. El comando debe ejecutarse desde un script por lo que no se pueden utilizar las teclas.

177voto

VonC Puntos 414372

" ¿Cómo crear un archivo de texto vacío a partir de 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 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

(Respuesta original, noviembre de 2009)

echo.>filename

( echo "" en realidad pondría "" en el archivo! Y echo sin el "." pondría " Command ECHO activated "en el archivo...)

Nota: el archivo resultante no es vacía pero incluye una secuencia de línea de retorno: 2 bytes.


Este discusión apunta a una verdadera solución por lotes para una verdadera vacía archivo:

 <nul (set/p z=) >filename

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

El " <nul " tubos a nul respuesta a la set/p que causará que el variable solía permanecer sin cambios. Como es habitual con set/p la cadena para el el derecho del signo igual se muestra como un aviso 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 "poco de redireccionamiento" (el <nul... truco) puede utilizarse para líneas de eco 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 como 12 bytes: " hello world! ".

169voto

Justin Puntos 671

Pruebe esto:

type NUL > 1.txt

esto definitivamente creará un archivo vacío.

46voto

qid Puntos 1289

Si realmente quieres un archivo totalmente vacío, sin salida a stdout, puedes hacer un poco de trampa:

copy nul file.txt > nul

Sólo redirige la salida stdout a nul, y la salida de la copia desaparece.

37voto

Patrick Cuff Puntos 13362

Aquí hay otra manera:

cd. > filename

17voto

nash Puntos 1644

Leyendo los comentarios de mi post, tengo que admitir que no leí bien la pregunta.

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

fsutil file createnew <filename> <size>

Un ejemplo:

fsutil file createnew myEmptyFile.txt 0

Abajo está la línea de comando de *nix.

touch filename

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

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:

X