我以为我曾经有过这个工作,但最近我的命令停止工作。我在国内外的研究并没有发现任何我没有尝试过的东西。也许我还缺少 SETX
正在查看的其他变量?
我的命令:
setx /s servername PATH "%Path%";"c:\program files (x86)\java\jre7\bin";"c:\program files (x86)\java\jre7\bin\client" /m
我在几个 Win2k8 服务器上尝试了相同的命令,但没有成功。这已经有效,但现在产生了上述错误。我通常在批处理文件中针对多个服务器的列表运行它以推出 Java。 (除非我们在远程安装时手动创建条目,否则不会设置 java 的路径。)
我尝试更新的服务器上现有的路径
是这样的:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%systemroot%\System32\WindowsPowerShell\v1.0\;C:\BMC\Patrol3\bin;C:\BMC\common\globalc\bin\Windows-x86;C:\BMC\common\globalc\bin\Windows-x86-64;C:\BMC\Patrol3\BEST1\9.5.00\bgs\bin
我确实清理了几个重复的路径条目。除此之外我没有发现任何异常的地方。
编辑: 调整命令以删除一些引号确实允许它运行,但是这样,它会导入本地系统的路径来替换远程系统路径并附加所需的路径条目。
修改后的命令:
setx /s servername PATH "%Path%;c:\program files (x86)\java\jre7\bin;c:\program files (x86)\java\jre7\bin\client" /m
为了解决这个新问题,我尝试使用 psexec 运行该命令。这样做让我回到原来的问题,“默认选项不允许超过‘2’次”。根据我在使用 psexec 时修改引号的方式,我可以获得“To many Arguments”或命令成功,路径被截断,最终成为再次应用于远程服务器的本地路径。
我的尝试中最有希望的:
psexec \\servername -u domain\user -p p@ssw0rd "c:\windows\system32\setx" "Path "%Path%;c:\program files (x86)\java\jre7\bin;c:\program files (x86)\java\jre7\bin\client" /M"
在 psexec 上使用“-s”选项会产生相同的错误,只是细节较少。
最佳答案
我能够通过创建要远程执行的批处理文件来更新远程系统上的路径值。
“setJava7path.cmd”的内容
setx Path "%Path%";"%ProgramFiles(x86)%\java\jre7\bin";"%ProgramFiles(x86)%\java\jre7\bin\client" /m
为了执行,我使用了 psexec,它将批处理文件复制到远程系统并执行命令。
psexec \\systemname -c setJava7path.cmd
它向我的整体部署脚本添加/更改了一行,但这是可以接受的。
关于windows - "ERROR: Invalid syntax. Default option is not allowed more than ' 2 ' time(s)."使用 SETX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402375/