PowerShellとバッチファイルを使用してドラッグ&ドロップで複数ファイルのタイムスタンプを操作するサンプルです。バッチファイルベースなのでスペースや記号の入ったファイル名では機能しない場合があります。忘備録のようなものです。
ドラッグ&ドロップでファイルの作成日時を更新日時に一括変更する場合
- 以下のバッチファイルの内容をメモ帳などでバッチファイル形式で保存します。(○○.batなど)
- タイムスタンプを変更したいファイルをバッチファイルへドラッグ&ドロップします。
- ファイルの作成日時が更新日時と同じ日時に変更されます。
@echo off
cd /d %~dp0
for %%I in (%*) do (
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { Set-ItemProperty '%%I' -name CreationTime -value (Get-ItemProperty '%%I').LastWriteTime }"
echo %%I
)
pause
ドラッグ&ドロップでファイルの更新日時を作成日時に一括変更する場合
- 以下のバッチファイルの内容をメモ帳などでバッチファイル形式で保存します。(○○.batなど)
- タイムスタンプを変更したいファイルをバッチファイルへドラッグ&ドロップします。
- ファイルの更新日時が作成日時と同じ日時に変更されます。
@echo off
cd /d %~dp0
for %%I in (%*) do (
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { Set-ItemProperty '%%I' -name LastWriteTime -value (Get-ItemProperty '%%I').CreationTime }"
echo %%I
)
pause
PowerShellのみを使用して処理する場合(1ファイル毎)
念のためPowerShell単体で単一ファイルを処理する場合のサンプルも置いておきます。
#ファイル作成日時を更新日時に書き替える場合
$file=処理するファイルパス(例 "c:\hogehoge.txt")
Set-ItemProperty $file -name CreationTime -value (Get-ItemProperty $file).LastWriteTime
#ファイル更新日時を作成日時に書き替える場合
$file=処理するファイルパス(例 "c:\hogehoge.txt")
Set-ItemProperty $file -name LastWriteTime -value (Get-ItemProperty $file).CreationTime
コメント