Windows cmd中CD/D切换的原因是什么?

kef*_*500 7 windows command-line cmd cd command-prompt

首先,我想说我确实理解/DWindows命令提示符 cd命令的切换目的.我只是好奇为什么它以这种方式工作,而不是其他方式.众所周知,它做了以下事情:

除了更改驱动器的当前目录外,还可以使用/ D开关更改当前驱动器.

但是每次我输入(例如)cd F:,显然我想改变驱动器.这就是为什么我认为这种转换本身就是多余的.

那么明确设置这个开关有什么意义呢?为什么默认不隐含?

Mar*_*gal 6

简短的回答:因为DOS表现得这样,并cmd试图模仿DOS.

最初,DOS为每个驱动器都有一个"当前导向器",因此如果您编写cd d:\folder,则更改D驱动器的当前目录.

你可以在这里阅读更多相关信息:http: //blogs.msdn.com/b/oldnewthing/archive/2010/10/11/10073890.aspx


Dav*_*rtz 6

你必须记住,DOS可以追溯到我们甚至还有鼠标切割和粘贴文本之前,屏幕是80x25文本.额外的打字,特别是如果你必须记住一些东西并在以后输入它,是非常痛苦的.现在想象一下尝试在多个驱动器上工作.如果只有一个当前目录,则必须在当前驱动器以外的驱动器上完全指定目录.这需要写下其他驱动器上的路径,因为它们不会停留在屏幕上.哎哟.

所以你可以这样做:

dir a:           <- See what dir I need
cd a:foo         <- This one
dir a:           <- See what file
dir b:           <- See what dir I need
cd b:bar         <- This one
dir b:           <- See what file
a:program b:data <- use them both
Run Code Online (Sandbox Code Playgroud)

否则,它将是:

dir a:                <- See what dir I need
cd a:foo              <- This one
dir a:                <- See what file (lots of scroll)
dir b:\               <- See what dir I need (scroll)
cd b:\bar             <- This one
dir b:                <- See what file (lots of scroll)
a:\foo\program b:data <- use them both (had to remember "foo")
Run Code Online (Sandbox Code Playgroud)

现在想象它不止一个目录.

现在,假设程序不支持子目录,并且需要在两个不同的驱动器上传递两个路径.