Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有理由在Windows中拆分“cd”命令?_Windows_Batch File_Cmd - Fatal编程技术网

有没有理由在Windows中拆分“cd”命令?

有没有理由在Windows中拆分“cd”命令?,windows,batch-file,cmd,Windows,Batch File,Cmd,我正在清理一些旧的Windows批处理文件,并不断看到这样的行: D: cd\ cd some\other\path\ 是否有可能与command.com兼容的原因?不只是把这写成 cd /d d:\some\other\path\ cd实际上不会改变工作驱动器;它只会更改该驱动器的工作目录。这就是为什么它会这样分开 举个例子可能会有所帮助: C:\users\david>cd D:\some\path C:\users\david> 注意,驱动器没有改变 C:\users\d

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

D:
cd\
cd some\other\path\
是否有可能与command.com兼容的原因?不只是把这写成

cd /d d:\some\other\path\
cd实际上不会改变工作驱动器;它只会更改该驱动器的工作目录。这就是为什么它会这样分开

举个例子可能会有所帮助:

C:\users\david>cd D:\some\path
C:\users\david>
注意,驱动器没有改变

C:\users\david>D:
D:\some\path>
既然D:是工作磁盘,工作目录将更改为您之前指定的目录

正如您所指出的,cd/d两者都可以。[更新:我一定是在读你原来的帖子时错过了/d:-对不起]

我相信你是对的,除了与COMMAND.COM兼容之外,没有什么好的理由不使用一行程序,我很确定COMMAND.COM不支持/d开关。因此,如果脚本文件依赖于COMMAND.COM中不支持的功能,我总是使用.cmd扩展名创建脚本文件

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

cd实际上并没有改变工作驱动器;它只会更改该驱动器的工作目录。这就是为什么它会这样分开

举个例子可能会有所帮助:

C:\users\david>cd D:\some\path
C:\users\david>
注意,驱动器没有改变

C:\users\david>D:
D:\some\path>
既然D:是工作磁盘,工作目录将更改为您之前指定的目录

正如您所指出的,cd/d两者都可以。[更新:我一定是在读你原来的帖子时错过了/d:-对不起]

我相信你是对的,除了与COMMAND.COM兼容之外,没有什么好的理由不使用一行程序,我很确定COMMAND.COM不支持/d开关。因此,如果脚本文件依赖于COMMAND.COM中不支持的功能,我总是使用.cmd扩展名创建脚本文件


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

我看不出任何原因。我觉得这个简短的变体可读性更好。如果没有some\other\path目录,那么第一个方法会将您留在D:drive的根目录中,而第二个方法不会做任何事情。哈哈,raymond chen在回答我的第一个问题时,oddsI看不出任何原因。我觉得这个简短的变体可读性更好。如果没有某个\other\path目录,那么第一个方法会将您留在D:驱动器的根目录中,而第二个方法不会做任何事情。哈哈,raymond chen在回答我的第一个问题时说,奇怪的是什么?您没有仔细阅读CD的帮助。cd/d也会改变驱动器的性能。但是pushd和popd从NT4开始就可以使用了。。。我不认为/d开关已经存在那么久了。这可能是真的,但我不知道有谁使用这样一个旧的系统。pushd和popd也给你一个目录堆栈。。。您甚至可以推送到UNC路径,并将为您创建一个临时驱动器号。至少在Win 7 Pro上是这样。我怀疑是否有人在使用NT4:但我想在使用NT4时使用既能处理驱动器又能处理文件夹的东西,所以我切换到pushd,再也没有回头看。你没有仔细阅读CD的帮助。cd/d也会改变驱动器的性能。但是pushd和popd从NT4开始就可以使用了。。。我不认为/d开关已经存在那么久了。这可能是真的,但我不知道有谁使用这样一个旧的系统。pushd和popd也给你一个目录堆栈。。。您甚至可以推送到UNC路径,并将为您创建一个临时驱动器号。至少在Win 7 Pro上是这样。我怀疑是否有人在使用NT4:但当我使用NT4时,我想要一种既能处理驱动器又能处理文件夹的东西,所以我切换到pushd,再也不回头了。