Pergunta

Alguém pode lembrar o que era o comando para criar um arquivo vazio no MSDOS usando o arquivo BAT?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top