1
に変更しました。約60個の.jpgイメージのディレクトリがあり、それぞれ約10枚の画像があります。問題は、これらのディレクトリのそれぞれに正しい順序でイメージがあることですが、名前はヒープであり、一部のディレクトリは000.jpg
から始まり、その他は002.jpg
に始まります。私がしたいのは、これらのディレクトリのすべてのファイルの名前を変更するスクリプトを作成することです。開始は001.jpg
です。ディレクトリ内のすべてのフォルダ内のすべてのファイルの名前をPowerShellの
私は少し成功しました。以下は、すべてのディレクトリで実行されるときに動作するコードです。
$i = 1
Get-ChildItem *.jpg | %{Rename-Item $_ -NewName ('{0:D3}.jpg' -f $i++)}
私はそれを実行する代わりに、それを60回実行するのではなく、ルートディレクトリで動作させようとしました。そして今まで私は失敗しました。私はいろいろな曲から作ろうとしましたが、今は自分のコードが何をすべきか理解していません。
$dir = Get-ChildItem | ?{ $_.PSIsContainer }
$dir | Foreach-Object{
$i = 1
Get-ChildItem *.jpg | %{Rename-Item $_ -NewName ('{0:D3}.jpg' -f $i++)}}
私はあなたに正直である、私は多くを理解していないPowerShell。だから私はコードを修正してよりうまく動作させるための助けをあなたに求めています。
各フォルダに移動して名前を変更してから、もう一度やり直す必要があります。スクリプトの最上部で '$ rootDir = Get-Location'を実行し、各ループ' set-location $ _'に対してGet-ChildItemを番号を付け直して 'set-location $ rootDir'を起点に戻します。 – TessellatingHeckler
Get-ChildItemのように 'Group-Object'を使うことができます。\ * \ *。jpg |グループディレクトリ| ForEach-Object -Begin {$ i = 0} - プロセス{$ _。グループ| %{Rename-Item $ _ -NewName( '{0:D3} .jpg' -f $ i ++)}}} '...私はあなたが望むことをするだろうと確信しています。 – TheMadTechnician