В Windows CMD партии, я пытаюсь вызвать командный файл:Failture в CMD пакетном файле
call ".\%%R\scenery\list bgl.bat" ".\%%R\scenery\"
В "списке bgl.bat" У меня есть:
IF "%1"=="" (dir *.bgl /b > list_bgl.txt) ELSE (dir "%1*.bgl" /b > list_bgl.txt)
и он выходит из строя где-то на месте состояния. Если истинная часть работает нормально (если я запускаю пакетный список bgl.bat "напрямую). Но если я запустил его из командного файла, так что блок else завершится с ошибкой и сбой сценария. Увидите, где проблема?
Update:
T:\test\scenery>call ".\list bgl.bat"
T:\test\scenery>IF "" == "" (dir *.bgl /b 1>list_bgl.txt) ELSE (dir "*.bgl" /b 1>list_bgl.txt)
T:\test\scenery>ECHO DONE
DONE
T:\test\scenery>pause
Press any key to continue
T:\test\scenery>call ".\list bgl.bat" ".\"
T:\test\scenery>IF ".\" == ""
(dir *.bgl /b 1>list_bgl.txt) ELSE (dir ".\*.bgl" /b 1>list_bgl.txt)
T:\test\scenery>ECHO DONE
DONE
T:\test\scenery>pause
Press any key to continue
T:\test\scenery>
Ну это работает. Параметр команды №. 1 был протестирован из CMD-линии
EDIT2: Когда я звоню основную партию (из родительского каталога) я не вижу никакой ошибки, но файл не создается в указанном каталоге, но в главном каталоге, откуда основной пробег был выполнен:
:
@echo off
cls
for /F "tokens=*" %%R in ('dir * /A:D /b') do (
echo ".\%%R\scenery\list bgl.bat"
call ".\%%R\scenery\list bgl.bat" ".\%%R\scenery\"
)
pause
EDIT3: Да, у меня есть. Проблема здесь:
> list_bgl.txt
Я скучаю по пути туда ... Это работает:
IF "%~1"=="" (dir *.bgl /b > list_bgl.txt) ELSE (dir "%~1*.bgl" /b > "%~1list_bgl.txt")
Что делать, если вы запустили «список bgl.bat» с параметром? например: '" list bgl.bat "" фиктивный параметр "' – vulkanino
Ну, я пытаюсь обновить свой пост. См. Выше – user1141649
Вы поняли, что путь ''. \ %% R \ scenery \ "' точно такой же, как '%% R \ scenery \" '? Точка означает «текущий каталог», поэтому «. Anydir» является Anydir ниже текущего каталога ... – Aacini