Spaces cause split in path with PowerShell 空格会导致PowerShell中路径的分割。

29 浏览
0 Comments

Spaces cause split in path with PowerShell 空格会导致PowerShell中路径的分割。

我在使用PowerShell调用包含空格路径的exe文件时遇到了问题。\nPS C:\\Windows Services> invoke-expression \"C:\\Windows Services\\MyService.exe\"\n

\n无法将术语\'C:\\Windows\'识别为Cmdlet、函数、脚本文件或可操作的程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。\n

\n似乎是在\'Windows\'和\'Services\'之间的空格处进行了分割。有没有什么办法可以解决这个问题?

0
0 Comments

问题:Spaces cause split in path with PowerShell

原因:在PowerShell中,如果路径中包含空格,会导致路径被分割。

解决方法:将包含空格的路径用引号括起来。

文章内容如下:

不确定是否还有人需要...我需要在PowerShell中调用msbuild,以下方法可以正常工作:

$MSBuild = "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe"
& $MSBuild $PathToSolution /p:OutDir=$OutDirVar /t:Rebuild /p:Configuration=Release

问题:Spaces cause split in path with PowerShell

原因:在PowerShell中,如果路径中包含空格,会导致路径被分割。

解决方法:将包含空格的路径用引号括起来。

0
0 Comments

问题的原因是在PowerShell中,空格会导致路径分割。解决方法是使用单引号和空格前的反引号来转义空格。

具体的解决方法是,可以在路径中使用单引号和反引号来转义空格,并使用-replace来替换路径变量中的空格。

然而,这种解决方法的问题在于路径作为参数传递,无法控制如何进行转义。

此外,需要指出的是,Invoke-Expression在这种情况下不是正确的工具,通常应该避免使用

0
0 Comments

Spaces cause split in path with PowerShell 是一个问题,出现的原因是路径中包含空格导致无法正确识别路径。解决方法是使用引号将路径括起来或者使用特殊的运算符进行调用。

在PowerShell中,如果路径中包含空格,则需要使用引号将路径括起来,以确保整个路径被正确识别。例如,下面的代码中,使用引号将路径括起来,确保了路径被正确识别:

& "C:\Windows Services\MyService.exe"

另一种解决方法是使用调用运算符(call operator)&来调用存储在引号字符串中的命令名称或路径。通过使用调用运算符,可以正确处理路径中的空格。下面的代码演示了使用调用运算符调用命令:

& "C:\Windows Services\MyService.exe"

需要注意的是,使用 Invoke-Expression 命令在这种情况下是错误的做法,而且一般应该避免使用。Invoke-Expression 命令的使用不仅在这个特定的场景中是错误的,而且在其他场景中也应该尽量避免使用。关于为什么应该避免使用 Invoke-Expression 命令的更多信息可以参考相关的博文。

对于我来说,我将路径作为 -ArgumentList 参数传递给 Start-Process 命令。通过这种方式,可以正确处理路径中的空格。下面的代码演示了如何使用 Start-Process 命令启动带有空格的路径:

Start-Process -FilePath "notepad++.exe" -ArgumentList "C:\Long Path\That\contains\many spaces\toThisFile.txt"

0