コマンドラインからスクリプトを実行するときに引数を渡すPowerShellで記述されたより大きなスクリプトの一部として実行されるJMPスクリプトがあります。
を使用してJMPスクリプトを開始します
Start-Process -FilePath $JMP_path -ArgumentList ("`""+$JMPScriptPath+"`"") -Waitスクリプトに追加の引数(テキスト文字列のみ)を渡したいのですが。
それ、どうやったら出来るの?
環境変数に書き込んでみましたが、JMPはスタンドアロンで実行すると正常に読み取ることができますが、PowersShell内から起動すると読み取ることができません。 また、この文字列をPowershellスクリプトからファイルに書き込んで、JSLスクリプトから読み取ることは避けたいと思います。 たぶん、その文字列をスクリプトに渡す方法はありますか? または、JMPがEnvironmenta変数を読み取れるように、Start-Processを別の方法で使用する必要がありますか?
スクリプティングRe:コマンドラインからスクリプトを実行するときに引数を渡すOK、
私は今のところこのようにしています:
'myVariable = "{0}";' -f $variableToPassToJMP | Out-File "./paths.jsl"
Start-Process -FilePath $JMP_path -ArgumentList ("`""+$JMPScriptPath+"`"") -Wait
Remove-Item -Path "./paths.jsl" -Force -Confirm:$falseあまりエレガントではありませんが、機能します
Re:コマンドラインからスクリプトを実行するときに引数を渡す同じ考え、多かれ少なかれ:
Jmp.exe引数
Re:コマンドラインからスクリプトを実行するときに引数を渡すええ、私はその投稿を見ました。 私が言ったように、JMPは、PowerShellスクリプトから起動すると、何らかの理由で環境変数を読み取ることができません。Re:コマンドラインからスクリプトを実行するときに引数を渡す@jschroedl
Re:コマンドラインからスクリプトを実行するときに引数を渡す環境変数をどのように設定しているかを教えてください。
これは私のために働いています:
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