Estou surpreso com quantas respostas aqui estão erradas . Fazer eco de nada em um arquivo preencherá o arquivo com algo parecido ECHO is ON
, e tentar ecoar $nul
em um arquivo será literalmente $nul
inserido no arquivo. Além disso, para o PowerShell, o eco $null
em um arquivo não produz um arquivo de 0kb, mas algo codificado como UCS-2 LE BOM
, que pode ficar confuso se você precisar garantir que seus arquivos não tenham uma marca de ordem de bytes.
Depois de testar todas as respostas aqui e referenciar algumas semelhantes, posso garantir que elas funcionem por shell do console. Apenas mude FileName.FileExtension
para o caminho completo ou relativo do arquivo que você deseja touch
; obrigado a Keith Russell pela COPY NUL FILE.EXT
atualização:
Atualizações do CMD com registro de data e hora
copy NUL FileName.FileExtension
Isso criará um novo arquivo com o nome que você colocou em vez de FileName.FileExtension
com um tamanho de 0 bytes. Se o arquivo já existir, ele basicamente se copiará no local para atualizar o registro de data e hora. Eu diria que isso é mais uma solução alternativa do que a funcionalidade 1: 1, touch
mas não conheço nenhuma ferramenta interna para o CMD que possa atualizar a data e hora de um arquivo sem alterar qualquer outro conteúdo.
CMD sem atualizações de carimbo de data / hora
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Atualizações do PowerShell com registro de data e hora
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
Sim, funcionará no console como uma linha; nenhum requisito para colocá-lo em um arquivo de script do PowerShell.
PowerShell sem atualizações de carimbo de data / hora
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
touch
. Outra discussão aqui: superuser.com/questions/10426/… e a biblioteca Cygwin é um conjunto de ferramentas comum dos comandos do Unix no Windows.