如何在 Power Shell 中执行带有多个参数的命令行?

How to execute a comandline with multiple parameters in Power Shell?

我正在尝试找到一种方法来执行命令并向其传递所需的参数。 一般的想法是将输出捕获为一个字符串,稍后插入到数据库中。

像这样编码时,输出保存在变量 $errOutput

$command = ".\myprogram.exe"
$params = "-v -aet *PARAM* -aec *PARAM* *IP* *Port* $($row.filename)"
[string]$errOutput = $( $output = &$command $params ) 2>&1

但是参数没有按预期工作。

错误信息:

$dcmtk: dcmsend v3.6.7 日期 $ System.Management.Automation.RemoteException dcms 结束:简单 DICOM 存储 SCU(发送方)错误:未知选项 -v -aet PARAM -aec PARAM IP 端口 文件

(敏感数据已替换端口、ip、nameofffile 等)

如果要将参数列表传递给 Powershell,您需要真正传递一个列表而不是单个字符串。这可以通过提供 comma-separated 字符串列表来完成:

$command = "dcmsend"
$params = "-v", "-aet", "SOME_AET", "-aec", "CALLED_AET", "hostname", "104", "test.dcm"
$errOutput = $( $output = &$command $params ) 2>&1

所以基本上,如果您将参数作为列表传递,您的代码将按原样工作。