我正在處理 Dicom 檔案,試圖找到一種方法來執行命令并將所需的引數傳遞給它。總體思路是將輸出捕獲為稍后插入資料庫的字串。
像這樣編碼時,輸出保存在變數 $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、名稱檔案等)
uj5u.com熱心網友回復:
如果要將引數串列傳遞給 Powershell,則需要真正傳遞串列而不是單個字串。這可以通過提供逗號分隔的字串串列來完成:
$command = "dcmsend"
$params = "-v", "-aet", "SOME_AET", "-aec", "CALLED_AET", "hostname", "104", "test.dcm"
$errOutput = $( $output = &$command $params ) 2>&1
因此,如果您將引數作為串列傳遞,基本上您的代碼將按原樣作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476843.html
