Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

ファイル名を一括で変更する

PS T:\PowerShell\hoge> dir


    ディレクトリ: T:\PowerShell\hoge


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2012/01/21     18:07          0 fuga.txt
-a---        2012/01/21     18:07          0 hoge.txt
-a---        2012/01/21     18:08          0 piyo.log

ファイル全部に.bakを付けたい。

PS T:\PowerShell\hoge> dir |%{Rename-Item $_ ($_.name + ".bak") }
PS T:\PowerShell\hoge> dir


    ディレクトリ: T:\PowerShell\hoge


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2012/01/21     18:07          0 fuga.txt.bak
-a---        2012/01/21     18:07          0 hoge.txt.bak
-a---        2012/01/21     18:08          0 piyo.log.bak

txt.bakだけに、拡張子の後に日付を入れたい。

日付は以下の様にして取れる

PS T:\PowerShell\hoge> get-date -F "yyyymmdd"
20121521

フォーマットは.NETのdatetimeformatinfoを調べればわかる。

PS T:\PowerShell\hoge> dir|?{ $_ -match "\.txt\.bak" } |%{ Rename-Item $_ ($_.na
me + $(get-date -F "yyyymmdd"))}
PS T:\PowerShell\hoge> dir


    ディレクトリ: T:\PowerShell\hoge


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2012/01/21     18:07          0 fuga.txt.bak20122321
-a---        2012/01/21     18:07          0 hoge.txt.bak20122321
-a---        2012/01/21     18:08          0 piyo.log.bak

おおう、"."を足すのを忘れた