2015年4月8日水曜日

更新日時を付加した名前に変更するバッチ その2

更新日時を付加した名前に変更するバッチでは更新日時をyyyymmdd_で付加しました。
秒数まで含め下記のような形式にしたい場合はアプローチを変えます。

使用イメージ。画像は時分秒なし


やっぱりバッチが好き。



バッチ、コマンドプロンプトではファイルの更新秒まで取得することができないようです。
このためPowerShellをバッチ内で実行することで無理やり取得します。

意地でもbatを使い続けるッ!(新しいことが覚えられないだけ。)


下記をバッチファイルにしたうえで、ドラッグ&ドロップ
またはsendtoに保存してから送るで実行。

:home
for /f "usebackq tokens=*" %%i in (`powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { (Get-ItemProperty '%~1').lastWriteTime.ToString('yyyyMMddHHmmss') }"`) do @set DATETIME=%%i

ren %1 "%DATETIME%_%~nx1"

shift
If %1.==. goto :EOF
goto home


下記を参考させていただきました。
バッチファイルから PowerShell を呼び出す方法 - Qiita
windows - How can I display the time stamp of a file with seconds, from the command line? - Super User

---
2015/11/2
0時~9時だと桁がすくなくなるので、ちゃんとゼロパディングされるよう変更。
またpowershell部分を見直し。

0 件のコメント:

コメントを投稿