首页 > 解决方案 > 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”和“..”之间有一个空格),那么一切都很好。

标签: windowscmdcd

解决方案


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

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

命令是,参数cd是相对路径。..\

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

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

echo Hello world!>"cd..  "

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

另请参阅 DosTips 论坛主题ECHO。无法提供文本或空行 - 而是使用 ECHO/,这与相同的问题有关。

另请参阅有关命名文件、路径和命名空间的 Microsoft 文章。

cd..\即使cd当前目录中存在同名文件,也可以使用作品。但是这个命令行仍然使用了错误的语法并且只是偶然地再次工作。如果cd.当前目录中存在同名文件,则此命令行将再次失败,因为cmd.exe现在在当前目录中搜索同名文件cd.

因此,以后只能使用正确语法的命令CD :cd ..\


推荐阅读