特にトリッキーなバッチ スクリプト リクエストがあります。このようなファイル/フォルダー構造があります
/mapcfgs/
/folder 1/
somefile.new
somefile.old
/folder 2/
someotherfile.new
someotherfile.old
/folder 3/
someotherotherfile.new
someotherotherfile.old
/maps/
/folder 1/
somefile.inf
/folder 2/
someotherfile.inf
/folder 3/
someotherotherfile.inf
今、私がやろうとしているのは、/mapcfgs/(フォルダーの名前)/*.new を /maps/(フォルダーの名前)/*.inf にコピーするスクリプトを作成することです。
私が遭遇した問題は、コピー ステートメントでその引数を使用する必要があるため、for ステートメントが検出した各ファイルのフォルダー名だけを取得する方法がわからないことです。
これまでの私のスクリプトは次のようになります。
@echo off
echo hello
for /f "usebackq tokens=* delims=\" %%a in (`dir /a-d /b /s mapcfgs *.new`) do copy "%%~dpna.new" "maps/%%~na.inf"
echo script finished
ただし、すべてのファイルを /maps/ にコピーするだけでなく、/maps の下の適切なフォルダー名にコピーする必要があります。これは、ファイルが mapcfgs の下にあるフォルダー名の名前に対応します。誰でもこれで私を助けることができますか?