CD异常行为

时间:2018-09-23 09:08:44

标签: windows cmd cd

我需要有人向我解释一下“ cd ..”命令序列中发生了什么(请注意,“ cd”和“ ..”之间没有空格):

c:\sebas\miscosas\escacs\pgns\$_ya\2018_08_sants>cd..

c:\sebas\miscosas\escacs\pgns\$_ya>cd..

c:\sebas\miscosas\escacs\pgns>cd..

c:\sebas\miscosas\escacs>cd..

c:\sebas\miscosas>cd..
'cd..' is not recognized as an internal or external command,
operable program or batch file.

我确实只写过一次“ cd ..”,后来我使用“向上箭头”来恢复以前的命令。

为什么第5次失败?

OpSys是Windows Server 2008 R2,版本6.1,内部版本7601。

谢谢

顺便说一句,如果我使用“ cd ..”(在“ cd”和“ ..”之间有一个空格),那么一切都很好。

1 个答案:

答案 0 :(得分:-1)

cd..的语法错误,只是偶然。

正确的语法是:命令 SPACE 参数

命令cd参数为相对路径..\

但是cmd.exe首先使用cd搜索名称为cd..的文件,因为它会将cd..解释为输入错误的文件名,而不是内部命令 CD < / strong>。 Windows命令处理器会在当前目录中确实存在一个名为cd的文件时尝试运行找到的文件,因为目录c:\sebas\miscosas显然是这种情况。

cd..在搜索合适的目录条目时将cmd.exe末尾的两个点删除。删除尾随空格/制表符和尾随点几乎总是作为纠错的一部分完成的,因为可以在运行命令行时看到:

echo Hello world!>"cd..  "

此命令行创建名称为cd的文件,文件末尾没有两个点和两个空格。

另请参阅与DosTips论坛主题ECHO. FAILS to give text or blank line - Instead use ECHO/有关的主题。

另请参阅有关Naming Files, Paths, and Namespaces的Microsoft文章。

即使当前目录中有一个名为cd..\的文件,也可以使用cd。但是,该命令行仍然使用错误的语法,并且仅在偶然的情况下可以再次使用。如果当前目录中有一个名为cd.的文件,则此命令行将再次失败,因为cmd.exe现在正在当前目录中搜索一个名为cd.的文件。

因此,将来仅使用正确语法为cd ..\

的命令 CD