String Powershell-$args去掉逗号
我正在编写一个脚本来与第三方软件接口 它们以以下格式发送字符串:String Powershell-$args去掉逗号,string,powershell,command-line-arguments,String,Powershell,Command Line Arguments,我正在编写一个脚本来与第三方软件接口 它们以以下格式发送字符串: sender-ip=10.10.10.10, primary site location=peachtree street, created by=jsmith 但是,当脚本执行时 Write-host $args 这是输出 sender-ip=10.10.10.10 primary site location=peachtree street created by=jsmith 如何使用逗号保留原始输入字符串 编辑: 下面
sender-ip=10.10.10.10, primary site location=peachtree street, created by=jsmith
但是,当脚本执行时
Write-host $args
这是输出
sender-ip=10.10.10.10 primary site location=peachtree street created by=jsmith
如何使用逗号保留原始输入字符串
编辑:
下面是代码片段
$args = $args.ToString()
write-host '$args is' $args
foreach ($i in $args){
$line_array+= $i.split(",")
write-host '$line_array is' $line_array
}
foreach ($j in $line_array){
$multi_array += ,@($j.split("="))
}
foreach ($k in $multi_array){
$my_hash.add($k[0],$k[1])
}
$Sender_IP = $my_hash.Get_Item("sender-ip")
当我用
script.ps1 sender-ip=10.10.10.10, primary site location=peachtree street, created by=jsmith
我明白了
它将其解释为多个参数。你需要引用整件事,让它知道只有一个论点:
&{Write-Host $args} sender-ip=10.10.10.10, primary site location=peachtree street, created by=jsmith
&{Write-Host $args} 'sender 10.10.10.10, primary site location=peachtree street, created by=jsmith'
sender-ip=10.10.10.10 primary site location=peachtree street created by=jsmith
sender 10.10.10.10, primary site location=peachtree street, created by=jsmith
它将其解释为多个参数。你需要引用整件事,让它知道只有一个论点:
&{Write-Host $args} sender-ip=10.10.10.10, primary site location=peachtree street, created by=jsmith
&{Write-Host $args} 'sender 10.10.10.10, primary site location=peachtree street, created by=jsmith'
sender-ip=10.10.10.10 primary site location=peachtree street created by=jsmith
sender 10.10.10.10, primary site location=peachtree street, created by=jsmith
或者,他可以像这样重新连接参数:
@{Write Host($args-join',')}sender ip=…
第三方程序正在发送要读入$args的参数。我正试图找出将整个$args转换为字符串的方法。我尝试了$args=$args.ToString(),但这不起作用…..此外,第三方程序将传递不同数量的参数,我也必须处理这些参数…或者,他可以像这样重新连接参数:@{Write Host($args-join',')}sender ip=…
第三方程序正在发送正在读入$args的参数。我正试图找出将整个$args转换为字符串的方法。我尝试了$args=$args.ToString(),但这不起作用……而且,第三方程序将传递不同数量的参数,我也必须处理这些参数。。。