在命令提示符下使用powershell运行java可执行文件
我有一个正在运行的powershell脚本,它运行一个java可执行文件。在我生成一组通过命令提示符运行的powershell脚本文件之前。现在我想这样做,不需要创建文件 以下是工作(.ps1)文件中的行的外观:在命令提示符下使用powershell运行java可执行文件,java,powershell,cmd,Java,Powershell,Cmd,我有一个正在运行的powershell脚本,它运行一个java可执行文件。在我生成一组通过命令提示符运行的powershell脚本文件之前。现在我想这样做,不需要创建文件 以下是工作(.ps1)文件中的行的外观: java“-Doption1=3”-Doption2=`true``jar.exe 我希望能够在命令提示符下执行以下操作: Powershell -Command "java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``
java“-Doption1=3”-Doption2=`true``jar.exe
我希望能够在命令提示符下执行以下操作:
Powershell -Command "java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``"true`` ` ``" jar.exe"
Powershell-命令“java”-Doption1=3“-Doption2=`true``jar.exe”
即使只是问这个问题,我对转义角色也有问题。在命令提示符下通过powershell调用java时,如果引号中有引号,那么处理转义字符的正确方法是什么?(我知道这有点混乱)如果您只关注需要引用的部分(假设选项值true
确实需要引用),则可以减少引用的麻烦:
上述操作将使java.exe
参见:
java -Doption1=3 -Doption2="true" jar.exe
正如您所看到的,即使是这个简单的预期结果引用案例也相当模糊,因为您要处理三层解释:
自己对初始命令行的解释cmd.exe
- PowerShell对其收到的论点的解释
- PowerShell如何将参数转换为对外部程序的调用(
)java.exe
java.exe
)如何解析命令行
也就是说,为了调用
java.exe
,即外部程序,您根本不需要PowerShell;直接调用它:
REM From cmd.exe
C:\> java -Doption1=3 -Doption2="true" jar.exe
你在说什么?为什么不直接使用PowerShell?也就是说,您可以使用EncodedCommand选项
java -Doption1=3 -Doption2="true" jar.exe
REM From cmd.exe
C:\> java -Doption1=3 -Doption2="true" jar.exe