在Powershell和Powershell ISE中,存在于路径中有空格的位置的Powershell脚本不会执行,或者至少它们的输出不会显示在命令窗口中。
我有一个Powershell脚本(helloworld.ps1
),它只包含以下代码:
Write-Host "Hello World"
如果脚本是从:
执行的"C:\Temp\helloworld.ps1"
输出为:Hello World
如果脚本是从:
执行的"C:\Program Files\Microsoft Office\helloworld.ps1"
输出为空白。
请注意,执行时路径被引号括起来(否则,很明显,我会有错误)。我在多个环境中的多台计算机上复制了同样的问题,所以它似乎不是一个配置问题。
如果脚本本身是从包含空格的路径执行的,那么Powershell输出隐藏的原因是什么?
答案 0 :(得分:2)
如果你这样做:
local itemTable = {
["category1"] = {
{"Test1",1463,0.4,0,13},
{"Test2",1578,0.5,0,4},
{"Test3",2683,1,0,6},
},
["category2"] = {
{"Test4",328,0.4,90,5},
{"Test5",1463,0.4,0,5},
{"Test6",346,1,90,1.5},
},}
这是一个引用的字符串,而PowerShell只会输出它。
如果您想执行带引号的字符串作为命令,则需要"C:\Temp\helloworld.ps1"
(调用或调用)运算符:
&
否则你可以在没有引号的情况下编写它,PowerShell会理解它是一个命令:
& "C:\Temp\helloworld.ps1"
如果脚本的路径或文件名包含空格并且您想要运行它,则必须使用C:\Temp\helloworld.ps1
并引用路径和文件名。
答案 1 :(得分:0)
要执行文件,请在其路径前加上任何引号:
PS C:\> C:\Temp\helloworld.ps1
如果路径中包含空格,请使用反勾号(`)转义空格:
PS C:\> C:\Program` Files\Microsoft` Office\helloworld.ps1
答案 2 :(得分:0)
只要引号不是第一个字符,它将起作用。
C":\Program Files\Microsoft Office\helloworld.ps1"
Hello World
答案 3 :(得分:-2)
在路径
之前使用.
C:>. "C:\Program Files\Microsoft Office\helloworld.ps1"