desenv-web-rp.com

Como criar um arquivo vazio na linha de comando no Windows?

Como criar um arquivo vazio na linha de comando do DOS/Windows?

Eu tentei:

copy nul > file.txt

mas sempre mostra que um arquivo foi copiado.

Existe algum outro método no cmd padrão?

Deve ser um método que não exija o comando touch do Cygwin ou qualquer outro comando não padrão. O comando precisa ser executado a partir de um script, portanto, os pressionamentos de tecla não podem ser usados.

440
Grendler

Sem redirecionamento, Luc Vu ou Erik Konstantopoulospointout para:

copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt

" Como criar arquivo de texto vazio de um arquivo de lote? " (2008) também aponta para:

type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive

Nômade menciona um original :

C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.

C:\Users\VonC\prog\tests>dir

 Folder C:\Users\VonC\prog\tests

27/11/2013  10:40    <REP>          .
27/11/2013  10:40    <REP>          ..
27/11/2013  10:40                 0 empty_file

No mesmo espírito, Samuel sugere nos comentários :

o mais curto que uso é basicamente o de Nomad:

.>out.txt

Isso dá um erro:

'.' is not recognized as an internal or external command

Mas esse erro está no stderr. E > apenas redireciona stdout, onde nothing foi produzido.
Daí a criação de um arquivo vazio. A mensagem de erro pode ser desconsiderada aqui.


(Resposta original, novembro de 2009)

echo.>filename

(echo "" na verdade colocaria "" no arquivo! E echo sem o '.' colocaria "Command ECHO activated" no arquivo ...)

Nota: o arquivo resultante não é vazio, mas inclui uma seqüência de linha de retorno: 2 bytes.


Esta discussão aponta para uma verdadeira solução em lote para um arquivo real vazio:

 <nul (set/p z=) >filename

 dir filename
 11/09/2009  19:45                 0 filename
 1 file(s)                         0 bytes

O "<nul" canaliza uma resposta nul para o comando set/p, o que fará com que a variável usada permaneça inalterada. Como de costume com set/p, a string à direita do sinal de igual é exibida como um prompt sem CRLF.

Como aqui a "string à direita do sinal de igual" está vazia ... o resultado é um arquivo vazio.


A diferença com cd. > filename (que é mencionada em resposta de Patrick Cuff e também produz um arquivo de 0 bytes) é que esse "bit de redirecionamento" (o truque <nul...) pode ser usado para echo lines sem qualquer CR :

<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt

O comando dir deve indicar o tamanho do arquivo como 12 bytes: "hello world!".

510
VonC

Tente isto:

type NUL > 1.txt

isso definitivamente criará um arquivo vazio.

253
Justin

Aqui está outro jeito:

cd. > filename
94
Patrick Cuff

Se você realmente quer um arquivo totalmente vazio, sem qualquer saída para stdout, você pode trapacear um pouco:

copy nul file.txt > nul

Apenas redirecione stdout para nul e a saída da cópia desaparece.

74
qid

Abrir arquivo :

type file.txt

Novo arquivo :

Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>

Editar conteúdo:

notepad file.txt

Cópia de

copy file1.txt file1Copy.txt

Renomear

rename file1.txt file1_rename.txt

Excluir arquivo:

del file.txt
43
iCrazybest

Lendo os comentários no meu post, tenho que admitir que não li a pergunta corretamente.

Na linha de comando do Windows, uma maneira seria usar fsutil :

fsutil file createnew <filename> <size>

Um exemplo:

fsutil file createnew myEmptyFile.txt 0

Abaixo está a linha de comando * nix.

touch filename

Este comando altera sua data modificada de um arquivo ou cria-o se o arquivo não for encontrado.

31
nash
echo "" > filename

Acredito que isso funcione no Windows/DOS, mas minha última experiência prática com um ou outro já foi há um bom tempo. Eu sei que funciona basicamente em qualquer sistema operacional POSIX compliant.

25
Kris
call>file.txt

esta é a maneira mais limpa que eu conheço.

21
nephi12

Você pode escrever seu próprio toque.

//touch.cpp
#include <fstream>
#include <iostream>

int main(int argc, char ** argv;)
{
  if(argc !=2)
  {
    std::cerr << "Must supply a filename as argument" << endl;
    return 1;
  }
  std::ofstream foo(argv[1]);
  foo.close();
  return 0;
}
11
Paul Nathan
cd > filename.cfg 

trabalhei ao criar um arquivo em C:/Program Files onde você não tem acesso para criar arquivos diretamente.

7
Hydrogirl

copiar con SomeFile.txt Enter

Ctrl-ZEnter

6
DRapp

Ainda outro método que cria um arquivo zero byte:

break > "file.txt"
5
foxidrive

Use copy > your_file_name.extension no comando Prompt like

P:\excecise> copy > Sample.txt
5
Raj Kumar Mishra

Tente isto: abc > myFile.txt Primeiro, ele criará um arquivo com o nome myFile.txt no diretório de trabalho atual (no comando Prompt). Em seguida, ele executará o comando abc, que não é um comando válido. Desta forma, você obteve um novo arquivo vazio com o nome myFile.txt.

5
Nomad

Você pode usar o comando antigo

copy con file_name.ext

não digite nada, apenas pressione F6 para salvá-lo, porém ele irá imprimir "Arquivo copiado", mas quando você abrir o arquivo, ele estará vazio

4
Amado Saladino

Você também pode usar:

echo. 2>foo

A saída de depuração para echo. será quase definitivamente vazia.

4
Craig

type nul>filename criará um novo arquivo vazio.

Desculpe estou atrasado.

UPDATE: também copy nul filename funciona sem redirecionar (solução mais óbvia).

4
EKons

então você pode criar um arquivo vazio com

'' > newfile.txt

navegue até o diretório e digite o comando acima na janela do PowerShell.

Observe que isso não funcionará no prompt do Windows.

3
Aswin 1054

Isso funcionou para mim

echo > file.extension

Aqui está outra maneira que encontrei hoje, tenho ideias de outras respostas, mas funcionou

sometext > filename.extension

Por exemplo.

xyz > emptyfile.txt  //this would create an empty zero byte text file
abc > filename.mp4   //this would create an zero byte MP4 video media file

Isso mostraria uma mensagem de erro no comando Prompt que,

xyz não é um comando interno ou externo, um programa operável ou um arquivo de lote.

Mas a coisa estranha que encontrei foi que o arquivo está sendo criado no diretório, mesmo que o comando não seja um comando padrão do Windows.

3
Lucky

No Windows tentei fazer isso

echo off > fff1.txt

e criou um arquivo chamado fff1.txt com tamanho de arquivo de 0kb

Eu não encontrei nenhum comando além deste que poderia criar um arquivo vazio.

Nota: Você tem que estar no diretório que você deseja criar o arquivo.

3
Omkar Agrawal

Ainda outro caminho:

copy nul 2>empty_file.txt
3
GadBro

Só tentei no windows

copy con file.txt

então aperte Enter Tecla em seguida, pressione Ctrl+ZEnter

E isso funcionou para mim.

Para o Ubuntu geralmente estou criando um arquivo usando o comando VI

vi file.txt

Ele irá abrir o arquivo e pressionar ESC Digite então : wp e pressione enter chave. Ele criará um novo arquivo com dados vazios.

2
ARJUN KP
  • crie um arquivo bat com conteúdo echo '' > %1. (nomeie o arquivo como touch.bat)
  • adicione a pasta à variável PATH.
  • você pode usar o toque para criar arquivos. (Ex: touch temp.txt cria arquivo temp.txt)

verifique this article para mais informações.

2
Pranay Kumar

Tente isto:

echo $null >> filename 

Veja: superusuário

2
shireef khatab

Eu li muitos tópicos, mas não é o caminho mais curto.

Por favor use o comando:

>copy /b NUL empty_file.txt

2
suhao399

Hoje eu descobri um novo :)

Isso irá alterar o título da janela de linha de comando, mas também criará um arquivo vazio.

title > file.txt
1
ninix

Aqui está outro modo:

rem/ > file.ext

A barra / é obrigatória; sem ele, a parte de redirecionamento foi comentada por rem.

1
aschipfl

Para criar qualquer tipo de arquivo, você pode usar o seguinte código

tipo nul> (file_name). (file_type)

Por exemplo. Se você quiser criar um arquivo de texto,

digite nul> demo.txt

Se você quiser criar um arquivo javascript,

digite nul> demo.js

1
Darshan Jain

Execute o CMD no modo admistrator e digite:

NUL > file_name.extention

ou você digita isso

echo .> file_name.extention
1
Lekens
echo.|set /p=>file

echo. suprime o "comando ECHO ativado"

|set /p= previne nova linha (e o arquivo agora é 0 byte)

0
131

Como usuário do VIM no Windows, não consegui encontrar a resposta neste tópico da questão.

Como uma solução de este segmento , por favor, instale o gvim em primeiro lugar.
Durante a instalação, lembre-se de marcar a opção "Criar arquivos .bat para uso da linha de comando", conforme mostrado abaixo.

enter image description here

Alguns arquivos bat como vim.bat e gvim.bat serão instalados em C:\Windows . Adicione C:\Windows ao sistema Caminho se não estiver pronto.

Reinicie o cmd.exe e digite gvim empty_file.txt, você iniciará o gvim para editar o arquivo vazio a partir do zero. Se você não quiser sair do seu console "Prompt de comando", digite vim empty_file.txt.

Espero que esta resposta possa ajudar aqueles que querem iniciar VIM no Prompt de Comando do Windows ao criar um arquivo vazio.

0
Gearon

Primeiro crie seu arquivo para que ele exista:

echo . > myfile.txt

Em seguida, sobrescreva o arquivo criado com uma versão vazia usando o comando copy:

copy /y nul myfile.txt
0
Dowopfan