在Windows中拆分“cd”命令的任何理由?

时间:2012-02-28 13:55:01

标签: windows batch-file cmd

我正在清理一些旧的Windows批处理文件,并继续看到这样的行:

D:
cd\
cd some\other\path\

是否有任何理由(与command.com的兼容性可能?)而不是将其写为

cd /d d:\some\other\path\

1 个答案:

答案 0 :(得分:4)

cd实际上并没有改变工作驱动器;它只会更改 该驱动器的工作目录。这就是它以这种方式分手的原因。

示例可能有所帮助:

C:\users\david>cd D:\some\path
C:\users\david>

注意驱动器没有改变。

C:\users\david>D:
D:\some\path>

现在D:是“工作磁盘”,工作目录将更改为您之前指定的目录。

正如您所指出的那样,cd /d将同时做到这两点。 [更新:在阅读原帖时我一定错过了/d :( - 抱歉)

我相信你是对的 - 除了与COMMAND.COM(我很确定不支持/d的兼容性之外,没有使用单行的“好”理由开关)。出于这个原因,如果它们依赖于COMMAND.COM中不支持的功能,我总是使用.cmd扩展名创建脚本文件。

更好的替代方案是使用行为类似pushd的{​​{1}} - 并且还可以让您返回之前的任何地方(通过cd /d)。您甚至可以popd到UNC路径(pushd),Windows将为您创建临时驱动器号。 (虽然我今天早上才发现这个功能,而且我正在运行Win 7 Pro,所以我不确定它是否适用于旧版本和/或家庭版本。)