【问题标题】: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% 即可工作。

【问题讨论】:

    标签: batch-file directory command-prompt drive


    【解决方案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%

      【讨论】:

      • 哇,在所有解决方案中,排名最低的是真正发挥作用的解决方案!谢谢!
      • 没有其他工作。谢谢你的餐巾纸!
      • 终于,解决方案对我有用,谢谢
      猜你喜欢
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 2014-12-02
      • 2015-02-22
      相关资源
      最近更新 更多