Alguém pode se lembrar qual foi o comando para criar um arquivo vazio no MSDOS usando o arquivo BAT?
batch-file
cmd
dos
m_pGladiator
fonte
fonte
cmd.exe
está?Set-Content "your_file.txt" .gitignore -Encoding utf8
maiúsculas de minúsculas e força a codificação utf8! (Eu também postei isso como resposta).Respostas:
fonte
.
dentroecho.
echo 2
sem o.
, o console mostraria "ECHO está desativado". O usoecho. 2
eficiente de silencia a saída do console exibindo apenas uma nova linha.O DOS tem alguns arquivos especiais (dispositivos, na verdade) que existem em todos os diretórios,
NUL
sendo o equivalente aos do UNIX/dev/null
: é um arquivo mágico que está sempre vazio e joga fora qualquer coisa que você escrever nele. Aqui está uma lista de alguns outros;CON
ocasionalmente é útil também.Para evitar qualquer saída, você pode usar
/y
impedecopy
de fazer uma pergunta que você não pode ver quando a saída vaiNUL
.fonte
copy /Y NUL
comando, ele pode apagar o conteúdo existente. Se você está acostumado aotouch
comando do Unix , isso pode não ser exatamente o que você espera.) O usotype NUL >> emptyfile.txt
é mais seguro nesse sentido.CON
, além do que está vinculado nesta resposta. Alguém poderia compartilhar alguma leitura leve?Depois de ler os dois posts anteriores, essa mistura dos dois é o que eu criei. Parece um pouco mais limpo. Não há necessidade de se preocupar em redirecionar os "1 arquivo (s) copiado (s)". mensagem para
NUL
, como a postagem anterior, e parece bom ao lado daECHO OutputLineFromLoop >> Emptyfile.txt
que geralmente se segue em um arquivo em lotes.fonte
Técnicas que recolhi de outras respostas:
Torna um arquivo de 0 byte uma maneira muito clara e compatível com versões anteriores:
ideia via: anônimo , Danny Backett , possivelmente outros, eu mesmo inspirado pelo trabalho de JdeBP
Um arquivo de 0 byte de outra maneira , é compatível com versões anteriores:
ideia via: Johannes
Um arquivo de 0 bytes também é compatível com versões anteriores:
ideia via: TheSmurf
Um arquivo de 0 byte da maneira sistemática provavelmente disponível desde o Windows 2000:
ideia via: Emm
Um arquivo de 0 bytes substituindo arquivos somente leitura
ideia via: direitos autorais
Uma única nova linha (2 bytes:
0x0D 0x0A
em notação hexadecimal , escrita alternativamente como\r\n
):Nota: não há espaço entre
echo
,.
e>
.idéia via: Como você pode ecoar uma nova linha em arquivos em lotes?
editar Parece que qualquer comando inválido redirecionado para um arquivo criaria um arquivo vazio. heh, um recurso! compatibilidade: desconhecido
Um arquivo de 0 bytes: comando inválido / com um nome aleatório (compatibilidade: desconhecido):
via: ótima fonte aleatória de Hung Huynh
edit 2 Andriy M aponta a maneira provavelmente mais divertida / provocadora de conseguir isso através de um comando inválido
Um arquivo de 0 bytes: comando inválido / maneira descolada (compatibilidade: desconhecido)
ideia via: Andriy M
Um arquivo de 0 bytes é a quarta maneira :
ideia via: foxidrive graças ao comentário de Double Gras !
fonte
type nul ...
nãotype <nul ...
é.NonExistentCommand <nul >EmptyFile.txt
e funcionoubreak > file.txt
, adereços foxidrive>>
se você precisar "deve existir, mas não deve ser truncado se existe" (como Unixtouch
faz)REM. > empty.file
fonte
REM.
, o cmd responderá com "'rem.' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote ".rem/
em vez derem.
resolve esse problema ...Se houver a possibilidade de que o arquivo a ser gravado já exista e seja somente leitura, use o seguinte código:
Se não houver arquivo, basta:
(código atualizado / alterado de acordo com o comentário de DodgyCodeException)
Para suprimir quaisquer erros que possam surgir:
fonte
CD
(sem extensão) no diretório atual e você digitarCD.
, o cmd responderá com "'CD.' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote ". Se você digitarCD .
(com um espaço antes do ponto), ele funcionará.fonte
Mais um para adicionar aos livros - curto e doce para digitar.
fonte
Você pode usar um
TYPE
comando em vez deCOPY
. Tente o seguinte:Onde
File1.txt
está vazio.fonte
type NUL>File2.txt
Você também pode usar
SET
para criar umbyte
arquivo nulo da seguinte maneiraOu, se você não deseja criar uma variável extra, reatribua uma variável existente como
ou assim:
fonte
Existem abordagens infinitas.
Comandos que não produzem nada:
Comandos estranhos:
O
print
comando desatualizado produz um arquivo em branco:fonte
A maneira mais fácil é:
echo. > Filename.txt
fonte
IMPORTANTE:
Se você não definir a codificação, muitos softwares podem quebrar. O git é um exemplo muito popular.
Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8
isso faz distinção entre maiúsculas e minúsculas e força a codificação utf8!fonte