Как получить пакетный скрипт Windows

Например, у меня есть простой пакетный скрипт get_path.bat

@echo off
echo C:\Software\dt

Также у меня есть еще один простой пакетный скрипт switch_dir.bat

@echo off
get_path.bat > target.tmp
set /p TARGET=<target.tmp
cd %TARGET%

Теперь, что я хочу сделать, это то, что, когда я призываю в cmd.exe командный файл switch_dir.batмой текущий рабочий каталог меняется на C:\Software\dt, На данный момент скрипты работают, но они запускаются в процессе, порожденном cmd.exe поэтому мой текущий рабочий каталог остается прежним. Чего не хватает? В основном нам нужен Unix-подобный source или же . Вот.

1 ответ

Ну, есть много возможных решений:

Начните свой сценарий с cmd /c :

Все, что вам нужно написать в cmd:

cmd /c switch_dir.bat

С помощью popd / pushd в вашем командном файле:

В вашем switch_dir.bat добавлять:

@echo off
pushd dir\you\want\to\remain\
get_path.bat > target.tmp
set /p TARGET=<target.tmp
cd %TARGET%
rem [code...]
popd

Дополнительное примечание: лучший способ найти каталог, указанный в get_path.bat это использовать for /f цикл как это:

@echo off
pushd dir\you\want\to\remain\
for /f "delims=" %%A IN ('get_path.bat') do set TARGET=%%A
cd %TARGET%
rem [code...]
popd
Другие вопросы по тегам