我试图找到一种方法来执行命令并将所需的参数传递给它。总体思路是将输出捕获为稍后插入数据库的字符串。
像这样编码时,输出保存在变量 $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 date $ System.Management.Automation.RemoteException dcms end: Simple DICOM storage SCU (sender) error: Unknown option -v -aet PARAM -aec PARAM IP PORT file
(敏感数据已替换端口、IP、名称文件等)
如果要将参数列表传递给 Powershell,则需要真正传递列表而不是单个字符串。这可以通过提供逗号分隔的字符串列表来完成:
$command = "dcmsend"
$params = "-v", "-aet", "SOME_AET", "-aec", "CALLED_AET", "hostname", "104", "test.dcm"
$errOutput = $( $output = &$command $params ) 2>&1
因此,如果您将参数作为列表传递,基本上您的代码将按原样工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句