我將PS版本升級到3.0,我們的一些腳本停止工作。經過大量調試後,我意識到啓動過程命令存在問題。PowerShell 3.0腳本中的啓動過程不起作用,但它在2.0中工作
基本上,當我直接在PowerShell cmd中運行啓動進程時,它會使用正確的參數運行程序。但是,當我運行該腳本時,它不會給出任何錯誤,但該程序將不會運行。
該腳本有點長,但這是我可以測試失敗片段的方式。
$SERVER = 'servername'
$PORT = 'xxxx'
$TPath = 'E:\epicor\PowerShell\export\POAutomation\'
$User = 'username'
$Psw = 'password'
$Import = 'PO Combined'
$file = $TPath + 'AutomaticPOHeaders.csv'
$DMTPATH = 'E:\epicor\Epicor905\Client\dmt.exe'
$Param = "-ArgumentList `'-user=`"$User`" -pass=`"$Psw`" -server=$SERVER -port=$PORT -import=`"$Import`" -source=`"$file`" -add=true -update=false -noui=true`'"
Start-Process $DMTPATH $Param -Wait
"Finished"
我甚至寫了一個日誌文件,以檢查是否$帕拉姆字符串以及形成,如果開始處理指令也寫得很好。當我將日誌文件中的字符串複製粘貼到PS命令行時,它們成功運行。
我一直堅持這超過4個小時了。
在此先感謝。
DMT是一個將數據導入我們ERP系統的應用程序。它正在等待,因爲它首先需要導入採購訂單標題,然後它將分別導入它們的行。我相信$ Param字符串是正確組成的,因爲我創建的日誌文件顯示它正確:啓動進程E:\ epicor \ Epicor905 \ Client \ dmt.exe -ArgumentList'-user =「dmt」-pass =「dmtUser」 - server = FIESP-MARS -port = 9401 -import =「PO Combined」-source =「E:\ epicor \ PowerShell \ export \ POAutomation \ AutomaticPOHeaders.csv」-add = true -update = false -noui = true'-Wait 。 – Sandra
我的意思是什麼語法的輸入參數dmt正在等待... –
如果我直接在PS命令行中使用啓動進程,它可以工作,但是從腳本運行時它不會。 – Sandra