フォルダの更新日付けを変更する

フォルダの更新日付を変更するプログラムを作成しました。プログラムを実行するとユーザーにフォルダパスと何日前に変更するかを対話的に聞きます。入力されたデータを元にset-ItemPropertyというコマンドレットを使用して更新日付を変更します。更新するフォルダが開いているとエラーになるので、一度、更新するフォルダを閉じてから実行します。

以下プログラムです。

set-PSDebug -strict
# --------------------------------
# フォルダの更新日付を変更する
# 注意:対象フォルダを開いていると更新できません
# --------------------------------

# フォルダパスをユーザーが入力
$folder_path = Read-Host "フォルダパスはなんですか"
if ($folder_path -eq ""){throw "フォルダパスが入力されてません"}

# フォルダパスが存在しない場合はエラー
$result = test-Path $folder_path
if( ! $result ){throw "フォルダが存在しません"}

# 何日前に設定するかをユーザーが入力
$days = read-Host "何日前に設定しますか"
if ($days -eq ""){throw "日数が入力されてません"}

# 数値じゃない場合はエラー
$result = $days -match "[^0-9]"
if ($result){ throw "数値を入力して下さい"}

# 設定する日付を設定
$date = (get-Date).adddays("-" + $days)

# 更新日付を変更する
set-ItemProperty -path $folder_path -Name LastWriteTime -Value $date.ToString("yyyy/MM/dd hh:mm:ss")

trap{
    break
}

更新日付を確認するには以下コマンドを実行します。