我正在尝试从Powershell调用wlst / jython / python
在正确的会话中未设置setWLSEnv.cmd设置类路径?所以我试图将-cp设置为参数
& C:\bea\tpc\weblogic1033\server\bin\setWLSEnv.cmd;
$cp='C:\bea\tpc\WEBLOG~1\server\lib\weblogic.jar'
$wlst='weblogic.WLST'
$script='C:\domains\tpc\Domain\bin\status.py'
$java="C:\PROGRA~1\Java\JROCKI~1.0\bin\java"
& "$java $cp $wlst $script"
#or
. "`"$java`" -cp `"$cp`" $wlst `"$script`""
#or
& "`"$java`" -cp `"$cp`" $wlst `"$script`""
我试图以各种方式引用命令字符串而没有成功
术语““ C:\ PROGRA〜1 \ Java \ JROCKI〜1.0 \ bin \ java” -cp“ C:\ bea \ tpc \ WEBLOG〜1 \ server \ lib \ weblogic.jar” weblogic.WLST“ C:\域\ tpc \ SasTT
pcDomain \ bin \ status.py“'无法识别为cmdlet,函数,脚本文件或可运行程序的名称。
名称或是否包含路径,请验证路径是否正确,然后重试。
在C:_WORK_ \ SAS \ statusAll.ps1:15 char:2
+。 <<<"$java” -cp
"$cp
“ $ wlst "$script
”“+ CategoryInfo:ObjectNotFound :(“ C:\ PROGRA〜1 \ Ja ... \ bin \ status.py”:字符串)[],CommandNotFoundException
+ FullyQualifiedErrorId:CommandNotFoundException
最佳答案
当您使用呼叫操作员&
时,下一个标记必须是命令的名称,而不能是其他任何名称。所以代替这个:
& "$java $cp $wlst $script"
尝试这个:
& $java $cp $wlst $script
有时,获取本机exe的参数可能会很丑陋。如果您的任何参数来自用户输入,通常可以使用但不安全的技术是:
Invoke-Expression "$java $cp $wlst $script"