2

У меня есть пакетный скрипт, который я написал под названием "joiner.bat". Он должен работать внутри каждого из 730 подкаталогов папки. Файл joiner.bat уже скопирован в каждую из подпапок, его нужно просто запустить в каждой. Я попробовал это, но это не работает:

for %f in (*) do joiner.bat %f

Я пробовал эту команду за пределами командного файла только в командной строке, но она ничего не сделала. Мне нужна команда, чтобы перейти в папку, выполнить команду, вернуться в предыдущую папку, в следующую, запустить команду и так далее.

1 ответ1

3

Это должно сделать это:

for /d %%a in (*) do (
    cd %%a 
    call joiner.bat
)

создайте это как командный файл в верхнем каталоге.

Я изменил ваш файл Баха из комментариев. Вам может понадобиться больше паренов, а DelayedExpansion требует использования! вместо %. Попробуй это

setlocal enabledelayedexpansion
for /d %%a in (*) do ( 
    cd %%a 
    copy /b *.xml newfile.xml 
    @echo off 
    SET "CDIR=%~dp0" 
    SET "CDIR=!CDIR:~0,-1!" 
    FOR %%i IN ("!CDIR!") DO (
        SET "PARENTFOLDERNAME=%%~nxi" 
        move newfile.xml "C:\users\lacroixja01\desktop\test\%PARENTFOLDERNAME%.xml" 
        )
)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .