1

このサイトで見つけたバッチ スクリプトを使用して、郡ごとに約 3000 のサブディレクトリを持つ 50 の州のディレクトリを作成しました。

残念ながら、ディレクトリにコピーするファイルは FIPS コードです。FIPS コードは、001 で始まる一連の奇数であり、州ごとの郡のアルファベット順のリストに適用されます。例として、アラバマ州は FIPS コード 001 を持つ最初のアルファベット順の郡として Autauga 郡で始まり、2 番目の郡は FIPS コード 003 を持つボールドウィンなど....そして FIPS コード 133 を持つウィンストン郡で終わります。 FIPS コードの 3 桁の番号を郡のフォルダ名に追加します (例: Autauga_001)。n + = 2を追加するのと同じくらい簡単だと思いますが、001から始める必要がありますか?

私はバッチファイルを書くことに非常に賛成です。私のニーズに合わせて、このサイトにリストされている同様のコードを断片化しようと何時間も費やしましたが、役に立ちませんでした.

どうすればこれを行うことができますか?前もって感謝します。

4

1 に答える 1

0

echoこれを試して、出力に問題がなければコマンドを削除してください:

@echo off&setlocal enabledelayedexpansion
rem set root to the subfolder, where the 50 state folders are inside
set "root=states"

pushd "%root%"
for /d %%i in (*) do (
    set /a counter=1001
    for /d %%j in ("%%~fi\*") do (
        set "newname=%%~nj_!counter:~-3!%%~xj"
        echo rename "%%~fj" "!newname!"
        set /a counter+=2
    )
)
popd
于 2013-04-23T21:40:46.520 に答える