Crear archivo vacío
A veces necesitas un archivo vacío en un archivo por lotes o en el símbolo del sistema, por ejemplo como archivo marcador que indica que un proceso ha terminado, o para inicializar un archivo de registro.
Esta página presenta tres formas de crear un archivo vacío, con código para copiar y pegar.
Resumen: ¿qué método usar?
| Método | Tamaño del archivo | Si el archivo ya existe |
|---|---|---|
type nul > archivo | 0 bytes | Se sobrescribe (se pierde el contenido) |
copy nul archivo | 0 bytes | En el símbolo del sistema pide confirmación; dentro de un archivo por lotes sobrescribe sin preguntar |
echo;>archivo | 2 bytes (solo un salto de línea) | Se sobrescribe (se pierde el contenido) |
Si necesitas un archivo de 0 bytes exactos, usa type nul o copy nul.
Cualquiera de estos métodos puede borrar el contenido de un archivo existente con el mismo nombre. Si quieres conservarlo, consulta la sección “Cómo evitar sobrescribir un archivo existente”.
Usando type
El comando type normalmente muestra el contenido del archivo indicado como argumento.
type C:\Users\Public\Documents\sample.txt
Si indicas un destino de redirección con >, la salida se escribe en ese archivo.
type C:\Users\Public\Documents\sample.txt > C:\Users\Public\Documents\sample2.txt
El comando anterior copia el contenido de sample.txt en sample2.txt.
Aprovechando esto, si pasas nul a type se crea un archivo sin contenido. nul es un nombre de dispositivo especial que no produce salida y se lee como vacío.
type nul > <nombre_del_archivo_nuevo>
type nul > %nombre_archivo%
A continuación hay un ejemplo para copiar y pegar. Cambia las variables FOLDER y FILE por la carpeta y el nombre de archivo que quieras.
Símbolo del sistema (se puede copiar):
En un archivo por lotes:
@echo off
setlocal
set FOLDER=%userprofile%\Documents\
set FILE=test.out
type nul > "%FOLDER%%FILE%"
endlocal
exit /b
Usando copy
El comando copy copia archivos.
copy A B
El comando anterior copia el archivo A al archivo B.
También puedes crear un archivo vacío con copy indicando nul como origen.
copy nul <nombre_del_archivo_nuevo>
El comando muestra “1 archivo(s) copiado(s)”. Para ocultar el mensaje, añade >nul al final.
copy nul %nombre_archivo%
Símbolo del sistema (se puede copiar):

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
En un archivo por lotes:
@echo off
setlocal
set FOLDER=%userprofile%\Documents\
set FILE=test.out
copy nul "%FOLDER%%FILE%" >nul
endlocal
exit /b
Para más información sobre el comando copy, consulta la siguiente página:
Usando echo
El conocido comando echo también puede crear un archivo. Sin embargo, no crea un archivo completamente vacío; se escriben 2 bytes de datos.
Podrías querer escribir echo nul>nombre_archivo, pero nul se trata como la cadena “nul”, y la palabra “nul” se escribiría en el archivo.
En su lugar, usa echo;, que solo emite un salto de línea:
echo;>nombre_archivo
El archivo resultante contiene solo un salto de línea (CRLF), por lo que ocupa 2 bytes. Esto no es un problema si solo necesitas que el archivo exista, por ejemplo como comprobación de existencia.
echo;>%nombre_archivo%
Símbolo del sistema (se puede copiar):
En un archivo por lotes:
@echo off
setlocal
set FOLDER=%userprofile%\Documents\
set FILE=test.out
echo;>"%FOLDER%%FILE%"
endlocal
exit /b
Para más información sobre el comando echo, consulta la siguiente página:
Cómo evitar sobrescribir un archivo existente
La redirección con > borra el contenido de un archivo existente. Para crear el archivo solo si no existe y dejarlo intacto en caso contrario, usa >> (anexar):
type nul >> sample.txt
Como no se anexa nada, el contenido existente se conserva, y si el archivo no existe se crea vacío.
También puedes combinarlo con if not exist. Para comprobar si un archivo existe, consulta la siguiente página:
Nota: usando PowerShell
En PowerShell, usa el cmdlet New-Item para crear un archivo vacío.
New-Item sample.txt -ItemType File