Como criar arquivo de texto vazio a partir de um arquivo de lote?
-
03-07-2019 - |
Pergunta
Alguém pode lembrar o que era o comando para criar um arquivo vazio no MSDOS usando o arquivo BAT?
Solução
echo. 2>EmptyFile.txt
Outras dicas
copy NUL EmptyFile.txt
DOS tem alguns arquivos especiais (dispositivos, na verdade) que existem em cada diretório, NUL
sendo o equivalente a /dev/null
do UNIX: é um arquivo de magia que sempre esvaziar e joga fora qualquer coisa que você escrever para ele. Aqui está um lista de algum outras; CON
é ocasionalmente útil como bem.
Para evitar que qualquer saída em tudo, você pode usar
copy /y NUL EmptyFile.txt >NUL
/y
impede copy
de fazer uma pergunta que você não pode ver quando a saída vai para NUL
.
type NUL > EmptyFile.txt
Depois de ler os dois posts anteriores, esta mistura dos dois é o que eu vim acima com. Parece um pouco mais limpo. Não há necessidade de se preocupar com o redirecionamento do "1 arquivo (s) copiado". mensagem para NUL
, como o post anterior faz, e parece bom ao lado do ECHO OutputLineFromLoop >> Emptyfile.txt
que normalmente vai seguir em um arquivo em lotes.
Techniques I recolhidos a partir de outras respostas:
Faz um arquivo 0 byte uma forma muito clara, compatível com versões anteriores:
type nul >EmptyFile.txt
idéia via: anônima, Danny Backett , possivelmente outros, eu mesmo inspirado por o trabalho de JdeBP
Um arquivo 0 byte outra maneira , é compatível com versões anteriores de aparência:
REM. >EmptyFile.txt
idéia via: Johannes
A 0 byte arquivo 3ª maneira compatível com versões anteriores para o futuro, demasiado:
echo. 2>EmptyFile.txt
idéia via: TheSmurf
A 0 byte arquivo a maneira sistemática provavelmente disponíveis desde o Windows 2000:
fsutil file createnew EmptyFile.txt 0
idéia via: Emm
A 0 bytes arquivo sobrescrever somente leitura arquivos
ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL
idéia via: copyitright
Uma nova linha única > fortes (2 bytes: 0x0D 0x0A
em hex notação , alternativamente escrito como \r\n
):
echo.>AlmostEmptyFile.txt
Nota:. não espaço entre echo
, .
e >
idéia via: Como você pode ecoar uma nova linha no lote arquivos?
Editar Parece que qualquer inválido comando redirecionada para um arquivo iria criar um arquivo vazio. heh, uma característica! compatibilidade: uknown
TheInvisibleFeature <nul >EmptyFile.txt
A 0 bytes do arquivo: comando inválido / com um nome aleatório (compatibilidade: uknown):
%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt
via: grande href="http://unserializableone.blogspot.hu/2009/04/create-unique-temp-filename-with-batch.html" fonte por acaso por Hung Huynh
Editar 2 Andriy M pontos fora o provavelmente mais divertido / provocando maneira de conseguir isso através do comando inválido
A 0 bytes file: / a maneira funky comando inválido (compatibilidade: desconhecido)
*>EmptyFile.txt
idéia via: Andriy M
A 0 bytes file-vindo 4ª maneira :
break > file.txt
idéia via: foxidrive graças a comentário de Duplo Gras !
REM. > Empty.file
Se houver uma possibilidade de que o arquivo a ser gravado já existe e é somente leitura, use o seguinte código:
ATTRIB -R filename.ext
CD .>filename.ext
Se nenhum arquivo existe, basta fazer:
CD .>filename.ext
(atualizado / mudou código de acordo com o comentário de DodgyCodeException)
Para suprimir todos os erros que podem surgir:
ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL
fsutil file createnew file.cmd 0
Uma mais a acrescentar aos livros -. Curto e doce para digitar
break>file.txt
break>"file with spaces in name.txt"
Você pode usar um comando TYPE
vez de COPY
. Tente isto:
TYPE File1.txt>File2.txt
Onde File1.txt
está vazio.
Você também pode usar SET
para criar um ficheiro nulo byte
como segue
set x=x > EmptyFile.txt
Ou se você não quiser criar uma variável adicional reatribuir uma variável existente como
set PROMPT=%PROMPT% > EmptyFile.txt
ou menos assim:
set "PROMPT=%PROMPT%" > EmptyFile.txt
A maneira mais fácil é:
echo. > Filename.txt