PowerShell

フォルダ名の変更

More than 1 year has passed since last update.

ユーザに明示的にフォルダを使わないようにお願いするときがあれば
つかえそうですが(ないか)。

①フォルダで名前が[test]を含むものだけ検出
PS C:\Users\user\Desktop> Get-ChildItem | where{$.mode -match "d" -and $.basename -match "^*test*"}

Mode LastWriteTime Length Name
d---- 2017/11/12 11:50 test_1
d---- 2017/11/12 11:50 test_2
d---- 2017/11/12 11:51 test_3
d---- 2017/11/12 11:49 test_5

②対象のフォルダのみ先頭を[禁止]に変更
PS C:\Users\user\Desktop> Get-ChildItem | where{$.mode -match "d" -and $.basename -match "^*test*"} | Rename-Item -NewName {$_.name -replace '^','禁止'}

実行結果
PS C:\Users\user\Desktop> Get-ChildItem | where{$.mode -match "d" -and $.basename -match "^*test*"}

Mode LastWriteTime Length Name
d---- 2017/11/12 11:50 禁止test_1
d---- 2017/11/12 11:50 禁止test_2
d---- 2017/11/12 11:51 禁止test_3
d---- 2017/11/12 11:49 禁止test_5

※補足
元に戻したいときは、フォルダの先頭から[禁止]を削除。
PS C:\Users\user\Desktop> Get-ChildItem | where{$.mode -match "d" -and $.basename -match "^*test*"} | Rename-Item -NewName {$_.name -replace '禁止',''}

実行後
PS C:\Users\user\Desktop> Get-ChildItem | where{$.mode -match "d" -and $.basename -match "^*test*"}

d---- 2017/11/12 11:50 test_1
d---- 2017/11/12 11:50 test_2
d---- 2017/11/12 11:51 test_3
d---- 2017/11/12 11:49 test_5