我在Powershell中做了一些脚本来自动执行任务。该脚本是会得到参数,如:为什么Powershell用逗号替换逗号?
PS > myscript.ps1 par=a,1,2,0.1 par=b,3,4,0.1 par=c,5,6,0.1 bin=file.exe exeargs="fixed args for file.exe"
总之,file.exe
是接受参数的可执行(包括a,b和c)和这个PS1脚本将执行file.exe
传递ARGS a
,b
和c
在指定的范围内,以指定的精度改变'em'。
问题是,我首先用字符“=”分割每个$arg in $args
,然后我应该用“,”来分割它们以获得指定的值。
的事情是,当我这样做:
foreach ($arg in $args)
{
$parts = ([string] $arg).split("=")
Write-Host $parts[1]
}
输出是
a 1 2 0.1
b 3 4 0.1
c 5 6 0.1
file.exe
fixed args for file.exe
也就是说,它已经取代了空白的“”性格,所以我的第二裂应该与空格,而不是逗号。
任何猜测为什么会发生?
在此先感谢!
是的,我试过类似的东西:把'par =“a,1,2,0.1”'等等。但是,这是无聊的,把“围绕每一个参数。你知道为什么PowerShell这样做吗? – Girardi
编辑 - 基本上','字符使它解析为一个数组而不是一个字符串 – user995048