[英]Running java executable with powershell within command prompt
我有一個正在運行並運行Java可執行文件的Powershell腳本。 在生成一堆通過命令提示符運行的Powershell腳本文件之前。 現在,我要創建它,因此不需要創建文件。
這是工作文件(.ps1)中的代碼行:
java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``"true`` ` ``" jar.exe
我希望能夠在命令提示符下執行以下操作:
Powershell -Command "java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``"true`` ` ``" jar.exe"
即使只是問這個問題,我在轉義字符方面也遇到了問題。 當通過命令提示符通過Powershell調用Java時,如果引號中的引號帶有引號,則處理轉義字符的正確方法是什么? (我知道這有點混亂)
如果您只關注需要報價的部分,則可以減輕報價的麻煩(假設選項值true
確實需要報價):
REM From cmd.exe
C:\> powershell -Command java -Doption1=3 -Doption2="'\"true\"'" jar.exe
以上將使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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.