如何使用批处理文件更改当前工作目录
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 命令行实用程序(如 FINDSTR
、SORT
等)也是如此。另一方面,第三方工具可以使用区分大小写的参数。
不值得自己回答,但您可以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%
【讨论】:
哇,在所有解决方案中,排名最低的是真正发挥作用的解决方案!谢谢! 没有其他工作。谢谢你的餐巾纸! 终于,解决方案对我有用,谢谢以上是关于如何使用批处理文件更改当前工作目录的主要内容,如果未能解决你的问题,请参考以下文章