我将我们的 PS 版本升级到 3.0,我们的一些脚本停止工作。经过大量调试后,我意识到 Start-Process 命令存在问题。
基本上,当我直接在 PowerShell cmd 中运行 Start-Process 时,它会使用正确的参数运行程序。但是,当我运行脚本时,它不会给出任何错误,但程序不会运行。
该脚本有点长,但这是我可以测试失败的片段的方式。
$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"
我什至写了一个日志文件来检查 $Param 字符串的格式是否正确,以及 Start-Process 命令是否也写得很好。当我将日志文件中的字符串复制粘贴到 PS 命令行时,它们运行成功。
我已经坚持了4个多小时了。
提前致谢。