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

Posted

技术标签:

【中文标题】如何使用批处理文件更改当前工作目录【英文标题】:How to change current working directory using a batch file 【发布时间】:2011-07-05 12:59:54 【问题描述】:

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

set root=D:\Work\Root

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

cd %root%

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

CD /D %root%

【讨论】:

其他答案说\d(小写)两者有区别吗?该选项是否不区分大小写? @josch:是的,如果我们在谈论 CMD 的内部命令,那么像上面的/D 这样的开关参数是不区分大小写的(/D = /d),就像命令本身一样( CD = cd)。我相信所有外部 Windows 命令行实用程序(如 FINDSTRSORT 等)也是如此。另一方面,第三方工具可以使用区分大小写的参数。 不值得自己回答,但您可以set "root=/d D:\Work\Root"cd %root% 甚至set "root=cd /d D:\Work\Root"%root%【参考方案3】:

试试这个

chdir /d D:\Work\Root

享受生根;)

【讨论】:

生根?在这种情况下,这甚至意味着什么? 需要注意的是,目录前后,"应该这样放;chdir /d "D:\Work\Root" @AdInfinitum 不,这不是真的,只有当路径中有空格时才需要这样做。仅引用空格单词也可以,例如C:\"Program Files"\Something\Something【参考方案4】:

更简单的语法可能是

pushd %root%

【讨论】:

哇,在所有解决方案中,排名最低的是真正发挥作用的解决方案!谢谢! 没有其他工作。谢谢你的餐巾纸! 终于,解决方案对我有用,谢谢

以上是关于如何使用批处理文件更改当前工作目录的主要内容,如果未能解决你的问题,请参考以下文章

如何使用mget命令指定下载远程文件的目标位置?

如何调用当前目录上一级的批处理文件?

如何使用批处理文件更改我的计算机音量?

Linux之文件基础操作命令

winrar自解压后自动运行bat批处理没有处理效果

bat 批处理文件全部命令