¿Alguien puede recordar cuál fue el comando para crear un archivo vacío en MSDOS usando el archivo BAT?
fuente
¿Alguien puede recordar cuál fue el comando para crear un archivo vacío en MSDOS usando el archivo BAT?
echo. 2>EmptyFile.txt
.
enecho.
echo 2
sin .
, la consola diría "ECHO está apagado". El uso echo. 2
efectivamente silencia la salida de la consola al mostrar solo una nueva línea.
copiar NUL EmptyFile.txt
DOS tiene algunos archivos especiales (dispositivos, en realidad) que existen en cada directorio, NUL
siendo el equivalente de UNIX /dev/null
: es un archivo mágico que siempre está vacío y tira todo lo que le escribes. Aquí hay una lista de algunos otros; CON
ocasionalmente es útil también.
Para evitar tener ningún resultado, puede usar
copy / y NUL EmptyFile.txt> NUL
/y
evita copy
que haga una pregunta que no puede ver cuando se envía la salida NUL
.
copy /Y NUL
comando, puede borrar el contenido existente. Si está acostumbrado al touch
comando de Unix , esto podría no ser lo que espera.) El uso type NUL >> emptyfile.txt
es más seguro a este respecto.
CON
, aparte de la vinculada en esta respuesta. ¿Podría alguien compartir alguna lectura ligera?
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 para NUL
, como lo hace la publicación anterior, y se ve bien al lado del ECHO OutputLineFromLoop >> Emptyfile.txt
que generalmente seguirá en un archivo por lotes.
Técnicas que obtuve de otras respuestas:
Hace que un archivo de 0 bytes sea muy claro y compatible con versiones anteriores:
type nul >EmptyFile.txt
idea vía: anónimo , Danny Backett , posiblemente otros, 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 de tercera vía también compatible con versiones anteriores:
echo. 2>EmptyFile.txt
idea a través de: TheSmurf
Un archivo de 0 bytes de la forma sistemática probablemente disponible desde Windows 2000:
fsutil file createnew EmptyFile.txt 0
idea a través de: Emm
Un archivo de 0 bytes que sobrescribe archivos de solo lectura
ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL
idea a través de: copyitright
Una nueva línea nueva (2 bytes: 0x0D 0x0A
en notación hexadecimal , alternativamente escrita como \r\n
):
echo.>AlmostEmptyFile.txt
Nota: no hay espacio entre echo
, .
y >
.
idea vía: ¿Cómo puedes repetir una nueva línea en archivos por lotes?
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 de azar por Hung Huynh
editar 2 Andriy M señala la forma probablemente más divertida / provocadora de lograr esto a través de un comando no válido
Un archivo de 0 bytes: comando no válido / the funky way (compatibilidad: desconocida)
*>EmptyFile.txt
idea a través de: Andriy M
Un archivo de 0 bytes que viene por cuarta vez :
break > file.txt
idea vía: foxidrive gracias al comentario de Double Gras !
type nul ...
, no type <nul ...
, en realidad.
NonExistentCommand <nul >EmptyFile.txt
y funcionó
>>
si necesita "debe existir pero no debe truncarse si existe" (como touch
hace Unix )
MOVIMIENTO RÁPIDO DEL OJO. > empty.file
REM.
, cmd responderá con "'rem' '. no se reconoce como un comando interno o externo, programa operativo o archivo por lotes ".
rem/
lugar de rem.
resolver ese problema ...
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 ningún archivo, simplemente haga:
CD .>filename.ext
(código actualizado / modificado de acuerdo con el comentario de DodgyCodeException)
Para suprimir cualquier error que pueda surgir:
ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL
CD
(sin extensión) en el directorio actual y escribe CD.
, cmd responderá con "'CD'. no se reconoce como un comando interno o externo, programa operativo o archivo por lotes ". Si en su lugar escribe CD .
(con un espacio antes del punto) funcionará.
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 TYPE
comando en lugar de COPY
. Prueba esto:
TYPE File1.txt>File2.txt
Donde File1.txt
esta vacio
type NUL>File2.txt
También puede usar SET
para crear un byte
archivo nulo 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 así:
set "PROMPT=%PROMPT%" > EmptyFile.txt
Hay infinitos enfoques.
Comandos que no generan nada:
break
cls
color
goto
pushd
popd
prompt
title
Comandos raros:
CD.
REM.
@echo off
cmd /c
START >FILE
El print
comando desactualizado produce un archivo en blanco:
print /d:EMPTY_TEXT_FILE nul
La forma más fácil es:
echo. > Filename.txt
IMPORTANTE:
Si no configura la codificación, muchos softwares pueden romperse. git es un ejemplo muy popular.
Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8
esto distingue entre mayúsculas y minúsculas y fuerza la codificación utf8.
cmd.exe
, ¿verdad?Set-Content "your_file.txt" .gitignore -Encoding utf8
LÉAME : ¡ esto distingue entre mayúsculas y minúsculas y fuerza la codificación utf8! (También publiqué esto como respuesta).