cd C:\Users\Rupesh Kumar\Documents
中间有一个空格"Rupesh Kumar"
,不允许我更改目录,但它在 CMD 中可以工作。
Set-Location : A positional parameter cannot be found that accepts argument 'Kumar\Desktop'.
At line:1 char:1
+ cd C:\Users\Rupesh Kumar\Desktop
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Location], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
答案1
在cmd中cd
是一个内部命令接收可选/D
选项,然后将整个剩余命令行视为路径,因此即使没有引号,它也可以接受路径中的空格。只需运行cd /?
,您就会看到
CHDIR command does not treat spaces as delimiters, so it is possible to
CD into a subdirectory name that contains a space without surrounding
the name with quotes. For example:
cd \winnt\profiles\username\programs\start menu
在 powershell 中cd
只是Set-Location
它接受各种参数,其中之一是路径。您不能像(几乎)所有其他正常的 shell 一样在单个参数中使用原始空格,因此您必须引用它或者逃离空间像这样
cd 'C:\Users\Rupesh Kumar\Documents'
cd "C:\Users\Rupesh Kumar\Documents"
cd C:\Users\Rupesh` Kumar\Documents
cmd 和 powershell 是完全不同的 shell,为什么你期望它们的行为相同?
答案2
请按上述说明为 加上单引号set-location
。作为一名程序员,我倾向于尽可能避免在代码中输入空格。我选择_
或干脆大写,不加空格