覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

WindowsでLinuxのtouchコマンドみたいなことをしたい

Linux の touch コマンド。利用用途はいくつかありますが、対象のファイルの更新タイムスタンプを現在日時の値に変更したいケースでよく使われると思います。

同じことをWindows上でもコマンド一発でやりたいことがあります。
DOSコマンドだけだと無理があるのでPowerShellの力を借ります。


具体的には、以下のようなコマンドを実行します。

powershell -C "(Get-Item {ファイルのパス}).LastWriteTime = (Get-Date)"


例えば以下のようなコマンドを実行するとカレントディレクトリの text001.txt というファイルの更新タイムスタンプを現在日時の値に変更できます。

powershell -C "(Get-Item .\text001.txt).LastWriteTime = (Get-Date)"


カレントディレクトリの .pdf ファイル(複数)の更新タイムスタンプをまとめて変更したい時は以下のようなコマンドを実行します。

powershell -C "Get-ChildItem -Path ".\*.pdf" | Where-Object { $_ -is [System.IO.FileInfo] } | ForEach-Object { Set-ItemProperty $_.FullName -Name LastWriteTime -Value (Get-Date) }"



関連エントリ