从命令行运行脚本时传递参数我有一个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