Как получить пакетный скрипт 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