¿Cómo crear un archivo de texto vacío a partir de un archivo por lotes?
-
03-07-2019 - |
Pregunta
¿Alguien puede recordar cuál fue el comando para crear un archivo vacío en MSDOS usando el archivo BAT?
Solución
echo. 2>EmptyFile.txt
Otros consejos
copy NUL EmptyFile.txt
DOS tiene algunos archivos especiales (dispositivos, en realidad) que existen en cada directorio, NUL
es el equivalente de / dev / null
de UNIX: es un archivo mágico que es siempre vacía y tira todo lo que le escribes. Aquí hay una lista de algunos otros; CON
también es útil ocasionalmente.
Para evitar tener ningún resultado, puede usar
copy /y NUL EmptyFile.txt >NUL
/ y
evita que copy
haga una pregunta que no puede ver cuando la salida va a NUL
.
type NUL > EmptyFile.txt
Después de leer las dos publicaciones anteriores, esta mezcla de las dos es lo que se me ocurrió. Parece un poco más limpio. No hay necesidad de preocuparse por redirigir los "1 archivos copiados". mensaje a NUL
, como lo hace la publicación anterior, y se ve bien al lado de ECHO OutputLineFromLoop > > Emptyfile.txt
que generalmente seguirá en un archivo por lotes.
Técnicas que obtuve de otras respuestas:
Crea un archivo de 0 bytes de una manera muy clara y compatible con versiones anteriores:
type nul >EmptyFile.txt
idea vía: anónimo , Danny Backett , posiblemente otros, yo mismo inspirado por El trabajo de JdeBP
Un archivo de 0 bytes de otra manera , es compatible con versiones anteriores:
REM. >EmptyFile.txt
idea vía: Johannes
Un archivo de 0 bytes 3a forma también compatible con versiones anteriores:
echo. 2>EmptyFile.txt
idea vía: TheSmurf
Un archivo de 0 bytes de forma sistemática probablemente disponible desde Windows 2000:
fsutil file createnew EmptyFile.txt 0
idea vía: Emm
Un archivo de 0 bytes que sobrescribe archivos de solo lectura
ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL
idea vía: copyitright
Una sola línea nueva (2 bytes: 0x0D 0x0A
en notación hexadecimal , alternativamente escrita como \ r \ n
):
echo.>AlmostEmptyFile.txt
Nota: no espacio entre echo
, .
y >
.
idea vía: ¿Cómo puede repetir una nueva línea en lote? archivos?
editar Parece que cualquier comando no válido redirigido a un archivo crearía un archivo vacío. je, una característica! compatibilidad: desconocido
TheInvisibleFeature <nul >EmptyFile.txt
Un archivo de 0 bytes: comando no válido / con un nombre aleatorio (compatibilidad: desconocido):
%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt
vía: gran fuente por azar por Hung Huynh
editar 2 Andriy M señala la forma probablemente más divertida / provocadora de lograr esto mediante un comando no válido
Un archivo de 0 bytes: comando no válido / the funky way (compatibilidad: desconocida)
*>EmptyFile.txt
idea vía: Andriy M
Un archivo de 0 bytes en el 4º camino :
break > file.txt
idea vía: foxidrive gracias a comentario de Double Gras !
REM. > empty.file
Si existe la posibilidad de que el archivo a escribir ya exista y sea de solo lectura, use el siguiente código:
ATTRIB -R filename.ext
CD .>filename.ext
Si no existe un archivo, simplemente haga:
CD .>filename.ext
(código actualizado / modificado según el comentario de DodgyCodeException)
Para suprimir cualquier error que pueda surgir:
ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL
fsutil file createnew file.cmd 0
Uno más para agregar a los libros: corto y dulce para escribir.
break>file.txt
break>"file with spaces in name.txt"
Puede usar un comando TYPE
en lugar de COPY
. Prueba esto:
TYPE File1.txt>File2.txt
Donde File1.txt
está vacío.
También puede usar SET
para crear un archivo nulo byte
de la siguiente manera
set x=x > EmptyFile.txt
O si no desea crear una variable adicional, reasigne una variable existente como
set PROMPT=%PROMPT% > EmptyFile.txt
o como este:
set "PROMPT=%PROMPT%" > EmptyFile.txt
La forma más fácil es: