我正在清理一些旧的Windows批处理文件,并继续看到这样的行:
D:
cd\
cd some\other\path\
是否有任何理由(与command.com的兼容性可能?)而不是将其写为
cd /d d:\some\other\path\
答案 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,所以我不确定它是否适用于旧版本和/或家庭版本。)