從命令行運行腳本時傳遞參數我有一個JMP腳本,該腳本作為PowerShell編寫的較大腳本的一部分運行。
我使用以下命令啟動JMP腳本
Start-Process -FilePath $JMP_path -ArgumentList ("`""+$JMPScriptPath+"`"") -Wait我想將其他參數傳遞給腳本-僅是文本字符串。
我怎麼做?
我嘗試將其寫入環境變量中,但是當JMP作為獨立變量運行時可以很好地讀取它,而當JMP從PowersShell中啟動時它無法讀取它。 我還想避免將此字符串從Powershell腳本寫入文件中,而只是從JSL腳本讀取它。 也許有一種方法可以將該字符串傳遞給腳本? 還是我應該以其他方式使用Start-Process,以便JMP可以讀取Environmenta變量?
腳本編寫回复:從命令行運行腳本時傳遞參數好,
我現在是這樣做的:
'myVariable = "{0}";' -f $variableToPassToJMP | Out-File "./paths.jsl"
Start-Process -FilePath $JMP_path -ArgumentList ("`""+$JMPScriptPath+"`"") -Wait
Remove-Item -Path "./paths.jsl" -Force -Confirm:$false不是很優雅,但是可以
回复:從命令行運行腳本時傳遞參數同樣的想法,或多或少:
Jmp.exe參數
回复:從命令行運行腳本時傳遞參數是的,我看到了那個帖子。 如我所說,從Powershell腳本啟動時,JMP由於某種原因無法讀取環境變量。回复:從命令行運行腳本時傳遞參數@jschroedl
回复:從命令行運行腳本時傳遞參數您能告訴我們如何設置環境變量嗎?
這為我工作:
startjmp.ps1:
$JMP_Path = "C:\Program Files\SAS\JMPPRO\15\jmp.exe"
$JMPScriptPath = "C:\util\test.jsl";
$Env:ScriptArg = "Hello from PowerShell";
Start-Process -FilePath $JMP_Path -ArgumentList ("`""+$JMPScriptPath+"`"") -Wait
test.jsl:
Open Log();
myvar = Get Environment Variable("ScriptArg");
print(myvar);
從PS啟動startjmp
JMP中的日誌輸出:
Open Log();
myvar = Get Environment Variable("ScriptArg");
print(myvar);
/*:
"Hello from PowerShell"
感謝您的ping @Craige_Hales