Saya terkejut berapa banyak jawaban di sini yang salah . Menggema apa pun ke dalam file akan mengisi file dengan sesuatu seperti ECHO is ON
, dan mencoba untuk menggema $nul
ke dalam file akan benar-benar menempatkan $nul
ke dalam file. Selain itu untuk PowerShell, gema $null
ke dalam file tidak akan benar-benar membuat file 0kb, tetapi sesuatu dikodekan sebagaiUCS-2 LE BOM
, yang bisa berantakan jika Anda perlu memastikan file Anda tidak memiliki tanda urutan byte.
Setelah menguji semua jawaban di sini dan merujuk beberapa yang serupa, saya dapat menjamin ini akan bekerja per shell konsol. Cukup ubah FileName.FileExtension
path lengkap atau relatif dari file yang Anda inginkan touch
; terima kasih kepada Keith Russell untuk COPY NUL FILE.EXT
pembaruan:
CMD dengan Pembaruan Timestamp
copy NUL FileName.FileExtension
Ini akan membuat file baru bernama apa pun yang Anda tempatkan alih-alih FileName.FileExtension
dengan ukuran 0 byte. Jika file sudah ada pada dasarnya itu akan menyalin dirinya sendiri di tempat untuk memperbarui timestamp. Saya akan mengatakan ini lebih dari solusi dengan fungsionalitas 1: 1 dengantouch
tetapi saya tidak tahu ada alat bawaan untuk CMD yang dapat menyelesaikan memperbarui stempel waktu file tanpa mengubah konten lainnya.
CMD tanpa Pembaruan Timestamp
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Powershell dengan Pembaruan Timestamp
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
Ya, itu akan bekerja di konsol sebagai satu-liner; tidak ada persyaratan untuk menempatkannya dalam file skrip PowerShell.
PowerShell tanpa Pembaruan Timestamp
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
touch
. Diskusi lain di sini: superuser.com/questions/10426/… dan pustaka Cygwin adalah toolset umum dari perintah Unix pada Windows.