web-dev-qa-db-ja.com

cmdまたはPowershellを使用して、複数のファイルの名前を「ModifiedDate / Time」に変更します

フォルダに何百ものJPGファイルがあります。各ファイルの名前を変更して、ファイル名がそのファイルの「変更された日付/時刻」、つまりDD.MM.RRRR.HH.MM.jpgに置き換えられるようにします。例えば、

Before    After  

001.jpg   11.01.2011.16.58.jpg  
002.jpg   12.01.2011.09.32.jpg  
003.jpg   14.01.2011.12.41.jpg  
...       ...

ファイル名にはコロン(:)を使用できないため、HHとMMの間のコロンはピリオドに置き換える必要があります。

サードパーティのツールを使いたくありません。 Powershellまたはコマンドラインでこれを実現するためのコードを教えていただけますか?

Powershellでこれを試してください:

Get-ChildItem *.jpg | Rename-Item -newname {$_.LastWriteTime.toString("dd.MM.yyyy.HH.mm") + ".jpg"}
14
Siim K

ここでの私のフィードバックを気にしないでください。

'Rename-Item'でこのエラーが発生しました:Rename-Item:ファイルが既に存在する場合はファイルを作成できません。

そこで、次のようにSiim Kのソリューションに追加し、これを「WindowsPowershellISE」内で実行しました。

Get-ChildItem * .jpg | ForEach-Object {$ NewName = $ 。LastWriteTime.toString( "yyyy.MM.dd.HH.mm.ss.ss")+($ script:i ++)+ "。 jpg "$ Destination = Join-Path -Path $。Directory.FullName -ChildPath $ NewName Move-Item -Path $ _。FullName-Destination $ Destination -Force}

'yyyy.MM.dd.mm.ss.ss'の順序で画像がより適切に表示され、フォルダー内でも画像数が減少(誤ってパージ)されなかったことがわかりました。これが他の「スーパーユーザー」(初心者または経験者)に役立つことを願っています。

0
Tony Nilsson