0

約 100 枚の印刷された写真のセットをスキャンし、それぞれにプレフィックスと自動インクリメントされたインデックスを持つファイル名を付けました。すでに 80 枚の写真をスキャンしたとき、順序が正しいものではないことに気付きました。とにかく、続けて終了しましたが、今ではこれらの名前のファイルが 100 個あります

Prefix1_000.jpg
Prefix1_001.jpg
...
Prefix1_099.jpg

(たとえば) 画像 "Prefix1_080.jpg" は実際にはセットの最初の画像であり、"Prefix1_081.jpg" は 2 番目の画像などであることがわかります。

PFrank をダウンロードしたところ、正規表現を使用してファイルの名前をバッチで変更できます。問題は、それらについての知識がほとんどないことです。

左側の名前を右側の名前に変更したい:

Prefix1_000.jpg --> Prefix2_020.jpg
Prefix1_001.jpg --> Prefix2_021.jpg
...
Prefix1_079.jpg --> Prefix2_099.jpg
Prefix1_080.jpg --> Prefix2_000.jpg
Prefix1_081.jpg --> Prefix2_001.jpg
...
Prefix1_099.jpg --> Prefix2_019.jpg

正規表現でこれを行うことは可能ですか? もしそうなら、どの検索と置換パターンを使用しますか? プレフィックスを変更しても問題ありません(自己重複を避けるため)。

編集済み : 不連続性は、80 のように 10 の倍数である必要はありません。実際には、81 のような醜い数です。

4

2 に答える 2

1

最も抵抗の少ない方法は、おそらく 10 ステップで実行することです。したがって、名前Prefix1_(.)0(.)\.jpgPrefix2_\12\2\.jpgに変更してから、名前Prefix1_(.)1(.)\.jpgPrefix2_\13\2\.jpgなどに変更します。正規表現で算術演算を行うことはお勧めしません。

ここで構文を簡単に説明すると、それぞれ(.)が任意の単一文字 ( ) を意味し、後で.使用するために覚えておく必要があります ( (...)\.正確に.文字を意味します (先ほど見た「任意の 1 文字」を意味するのとは対照的に)。次に、読み替えで、 「第1グループ」と「第2グループ」\1\2意味します。(...)(...)

Chris Gessler が言うように、他のより汎用的なツールを使用することもできます。(同じ問題に直面した場合は、おそらく Python で実行するでしょう。) しかし、入手したツールを使用しない特別な理由はありません。

于 2012-05-09T00:02:18.347 に答える
1

You can easily do this with PowerShell. Here the first one, I'll let you handle the rest. Shouldn't take more than 10 minutes or so.

Dir Prefix1_00*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_00","Prefix2_02"  }

Dir Prefix1_01*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_01","Prefix2_03"  }

Dir Prefix1_02*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_02","Prefix2_04"  }

Dir Prefix1_03*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_03","Prefix2_05"  }

Dir Prefix1_04*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_04","Prefix2_06"  }

Dir Prefix1_05*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_05","Prefix2_07"  }

Dir Prefix1_08*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_08","Prefix2_00"  }

Dir Prefix1_09*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_09","Prefix2_01"  }

Dir Prefix1_06*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_06","Prefix2_08"  }

Dir Prefix1_07*.jpg | rename-item -newname {  $_.name  -replace "Prefix1_07","Prefix2_09"  }

Took about 10 minutes... enjoy!

于 2012-05-08T23:59:13.563 に答える