Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Powershell-$args去掉逗号_String_Powershell_Command Line Arguments - Fatal编程技术网

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(),但这不起作用……而且,第三方程序将传递不同数量的参数,我也必须处理这些参数。。。