123

我需要一些帮助来编写批处理文件。我有一个存储在变量根目录中的路径,如下所示:

set root=D:\Work\Root

然后我将我的工作目录更改为此根目录,如下所示:

cd %root%

当我从 D 驱动器上的任何位置执行此批处理文件时,这已成功完成。但是当我从其他驱动器执行相同的批处理文件时, cd %root% 不起作用。

有没有办法从根变量中获取驱动器号?然后我可以先将当前目录更改为该驱动器,然后 cd %root% 即可工作。

4

5 回答 5

176

指定/D也更改驱动器。

CD /D %root%
于 2011-02-28T05:27:10.663 回答
46

只需用于cd /d %root%切换驱动程序字母和更改目录。

或者,pushd %root%在更改目录以及将前一个目录存储在堆栈上时使用切换驱动器号,以便您可以使用popd切换回来。

请注意,这pushd还允许您将目录更改为网络共享。它实际上会为您映射一个网络驱动器,然后在您执行该popd目录时取消映射它。

于 2011-02-28T05:26:45.113 回答
34

试试这个

chdir /d D:\Work\Root

享受生根;)

于 2014-09-12T12:07:01.967 回答
19

更简单的语法可能是

推%root%

于 2019-07-15T15:51:26.600 回答
1

在我的批处理文件中,我需要:

  1. 将目录更改为其他目录
  2. 在 bat 文件中运行命令——在那个目录中做一些工作
  3. 改回我原来的目录

pushd在的帮助下解决了这个问题popd

bat 文件示例

pushd <my-working-directory>
do command
do other command
...

popd 

popd将我移回原始目录。

于 2022-02-01T21:54:46.817 回答