0

フォルダー AE から 1 つのフォルダー X にファイルを移動する一連のコマンドがあります。

for /f "delims=" %%a in (
    'dir /s /b ^| find /i "\Folder A\"'
    ) do move "%%a" "G:\Folder X"
for /f "delims=" %%a in (
    'dir /s /b ^| find /i "\Folder B\"'
    ) do move "%%a" "G:\Folder X"

X に入ったら、X 内で .bat を実行して、名前に基づいてこれらのファイルを名前順にフォルダーに並べ替えます。

for /f "tokens=2 delims= " %%b in ('dir /b *.pdf') do (
    md %%b > nul 2>&1
    move *%%b*.pdf %%b
    )

しかし、.bat だけではなく、ルート フォルダーの X 内で .bat を実行したいようです\X\X\*.batX 内でのみ実行するように指示する方法はありますか? に変更*.pdfする以外にX\*.pdf?各 .bat が可能な限り移植可能になるように記述しようとしています。

4

1 に答える 1

1

G:\Folder X私があなたを正しく理解している場合、唯一の問題は、現在のディレクトリが変更されないことであり、そのフォルダでバッチファイルを実行するときに変更したいということです。

これは、「親」バッチファイルから実行できます。

pushd "G:\Folder X"
call "G:\Folder X\process.bat"
popd

または、「子」バッチファイル内から、常に現在のディレクトリをバッチファイルを含むディレクトリに設定するように強制できます。

pushd "%~dp0"
:: do your stuff
popd
于 2013-03-14T19:22:52.520 に答える