Я хочу запустить некоторый .cmd-файл и остаться в том же каталоге.bat/cmd файл не возвращается
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server\bin\setDomainEnv.cmd
Проблема заключается в том, что при выполнении setDomainEnv.cmd остроумию около 10 других CMD файлов, вызываемых из него, я остался в совершенно другом каталоге. И я хочу быть там, где я начал. Поскольку я всегда начинаю в том же каталоге, я добавляю строку cd:
Echo on
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server\bin\setDomainEnv.cmd
Echo on
cd /d C:\workspaces\DS8\swprods\dist-4.1.8-local-devel\
Без эффекта! Снова я остался в
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server>
И я даже не вижу 3,4 строки, которые появятся на консоли. Я мог понять все это, если некоторые из внутренних сценариев закончились ошибкой, но они заканчиваются ОК, без ошибок.
Было бы понятно, если бы некоторые из сценариев изменили каталог на другой диск, и для замены назад потребуется ключ/d. Но все делается на одном и том же диске C :.
Все операции в скрипте выполняются в том же исходном каталоге. После выхода из командного файла каталог изменяется.
....................................................
C:\workspaces\DS8\swprods\dist-4.1.8-local-devel>if "Oracle" == "Apple" (set MEM
_ARGS=-Xms2048m -Xmx2048m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxPermSize=256m)
C:\workspaces\DS8\swprods\dist-4.1.8-local-devel>if exist C:\Oracle\MIDDLE~1\ORACLE~1\USER_P~1\domains\WL_SER~1\bin\setStartupEnv.cmd (call "C:\Oracle\MIDDLE~1\ORACLE~1\USER_P~1\domains\WL_SER~1\bin\setStartupEnv.cmd")
^this is the last run line of the script
«Почему?» и иногда я думал: «Почему?» а иногда я подумал: «Так, какие и как я могу изменить каталог назад
Oh! без вызова он не возвращается обратно в первый скрипт, не так ли? Спасибо, пожалуйста, включите это объяснение в ответ. – Gangnus
Добавлено. Существует ссылка на 'call', также объясняющая его поведение. – baldr
Отлично. Я уже отметил это. Большое спасибо. – Gangnus