无法在 powershell 中更改目录

无法在 powershell 中更改目录
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。作为一名程序员,我倾向于尽可能避免在代码中输入空格。我选择_或干脆大写,不加空格

相关内容