0

DOS バッチ ファイルを作成して、任意のサブディレクトリ内の複数のファイルの名前を変更するにはどうすればよいですか

1.jpg
10.jpg
11.jpg
12.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg

論理的に配置されていないので、配置したい

1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
10.jpg
11.jpg
12.jpg

その前に 000 を置きます>>

0001.jpg
0002.jpg
0003.jpg
0004.jpg....
4

2 に答える 2

3
@ECHO OFF
SETLOCAL enabledelayedexpansion
FOR /l %%i IN (1,1,999) DO (
SET newname=000%%i
SET newname=!newname:~-4!
IF EXIST %%i.jpg ECHO REN %%i.jpg !newname!.jpg
)

名前には英数字以外の文字が含まれていないため、かなり単純な作業です。

必要なサブディレクトリに変更し、ループで 1..999 の数字を取得し、先頭に「000」を付けてから、最後の 4 文字を取得して名前を変更します。

を含めたECHOので、操作は簡単に報告されます。ECHOキーワードを削除して名前変更を実行します。

元のIF EXIST名前が存在しない場合、ゲートは名前変更の試みを停止します (見苦しいエラー メッセージが生成されます)。新しいファイル名が既に存在する場合、名前変更の試みを防ぐために、必要に応じてこれを再度ゲートすることができます。

于 2013-04-12T08:38:38.203 に答える
0
@echo off
setlocal EnableDelayedExpansion
for %%a in (*.*) do (
   set name=0000%%a
   if not exist !name:~-8! ECHO ren %%a !name:~-8!
)

ここでより一般的な方法を確認できます:バッチ スクリプトを使用する場合、ファイル名に関して ASCII 並べ替え順序を克服する方法は? ファイル名の数字の前に固定部分がある場合。

于 2013-04-12T09:16:34.020 に答える