1
@echo off
setlocal EnableDelayedExpansion
set i=0
for %%X in (*.jpg;*.png) do (
    set ext=%%~xX
    set /a i+=1
    set num=0000!i!
    set name=!num:~-3!
    copy "%%X" "!name!!ext!"
)

これは、3桁(001、002、...)にパディングしたいくつかの画像の名前を変更するためにまとめたバッチファイルです。フォルダに999を超えるファイルがある場合は、入力してパディングを変更するのは簡単ですが、スクリプトに必要なパディングを計算させるだけの方がおそらく効果的です。

私は次のことをしようとしています

1-現在のディレクトリ内のファイル数を取得します
2-それをパディングとして設定し、通常どおり続行します

これどうやってするの?

4

1 に答える 1

0

2つのループが必要です。最初のループでは、ファイルの数とカウンターの文字列の長さのみを取得します。

次に、これを変数exに設定します。

set padLength=%stringLenOfCounter%

次に、2番目のループを次のように変更するだけです。

for %%X in (*.jpg;*.png) do (
    ...
    set name=!num:~-%padLength%!
    ...
)
于 2012-09-05T15:10:56.697 に答える