例如,我有一个简单的批处理脚本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
或.
。
答案 0 :(得分:0)
嗯,有许多可能的解决方案:
使用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