ここでどれだけ多くの回答が間違っているかに驚いています。ファイルに何もエコーしないと、ファイルはのように埋められ、ファイルECHO is ON
にエコーしようとする$nul
と、文字どおりファイルに配置$nul
されます。さらに、PowerShellの場合$null
、ファイルにエコーしても実際には0kbファイルは作成されUCS-2 LE BOM
ませんが、としてエンコードされているため、ファイルにバイトオーダーマークがないことを確認する必要がある場合、乱雑になる可能性があります。
ここですべての回答をテストし、いくつかの同様の回答を参照した後、これらがコンソールシェルごとに機能することを保証できます。FileName.FileExtension
必要なファイルの完全パスまたは相対パスに変更するだけtouch
です。アップデートを提供してくれたKeith Russellに感謝しCOPY NUL FILE.EXT
ます。
CMDとタイムスタンプの更新
copy NUL FileName.FileExtension
これFileName.FileExtension
により、サイズが0バイトではなく、配置した名前の新しいファイルが作成されます。ファイルがすでに存在する場合、基本的にはファイルをインプレースでコピーしてタイムスタンプを更新します。これは1:1の機能よりも回避策のほうが多いと思いますtouch
が、他のコンテンツを変更せずにファイルのタイムスタンプを更新できるCMDの組み込みツールについては知りません。
タイムスタンプ更新なしのCMD
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Powershell w / Timestampアップデート
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
はい、コンソール内でワンライナーとして機能します。PowerShellスクリプトファイルに配置する必要はありません。
タイムスタンプ更新なしのPowerShell
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
touch
。ここでのその他の議論:superuser.com/questions/10426/…そして、Cygwinライブラリは、WindowsでのUnixコマンドの一般的なツールセットです。