如何获取Windows批处理脚本

时间:2018-12-19 10:01:58

标签: cmd working-directory

例如,我有一个简单的批处理脚本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 个答案:

答案 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