Batch file 如何使用批处理文件更改当前工作目录

Batch file 如何使用批处理文件更改当前工作目录,batch-file,directory,command-prompt,drive,Batch File,Directory,Command Prompt,Drive,我需要一些帮助来编写批处理文件。 我有一个存储在变量根中的路径,如下所示: set root=D:\Work\Root cd %root% 然后,我将工作目录更改为此根目录,如下所示: set root=D:\Work\Root cd %root% 当我从D驱动器上的任何位置执行此批处理文件时,这已成功完成。但是,当我从其他驱动器执行相同的批处理文件时,cd%root%不起作用 有没有办法从根变量获取驱动器号?然后,我可以先将当前目录更改为此驱动器,然后cd%root%将工作。只需使用c

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

set root=D:\Work\Root
cd %root%
然后,我将工作目录更改为此根目录,如下所示:

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


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

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

或者,在更改目录以及在堆栈上存储以前的目录时,使用
pushd%root%
切换驱动器号,以便使用
popd
切换回


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

指定
/D
也可以更改驱动器

CD /D %root%
试试这个

chdir /d D:\Work\Root

喜欢生根;)

更简单的语法可能是


pushd%root%

是否要生根?在这个上下文中这意味着什么?应该注意的是,在directory之前和之后,“应该这样放置;chdir/d“d:\Work\Root”@adfinitum不,这不是真的,只有在路径中有空格的情况下才有必要这样做。只需计算空格单词也可以,就像
C:\”程序文件一样“\Something\Something
其他答案说
\d
(小写)两者之间有区别吗?选项不区分大小写吗?@josch:是的,如果我们讨论的是CMD的内部命令,那么像上面的
/D
这样的开关参数是不区分大小写的(
/D
=
/D
),就像命令本身一样(
CD
=
CD
)。我相信所有外部Windows命令行实用程序(如
FINDSTR
SORT
等)也是如此。另一方面,第三方工具可以使用区分大小写的参数。不值得自己回答,但您可以
设置“root=/d d:\Work\root”
cd%root%
甚至
设置“root=cd/d:\Work\root”
还有
%root%
哇,在所有解决方案中,排名最低的才是真正起作用的解决方案!谢谢没有别的办法。谢谢你,鲍勃!最后,这个解决方案对我有效了,谢谢