调用 java 个命令行应用程序
Calling java command line applications
所以我有以下命令 运行s java 从命令行应用程序并产生一堆输出。
java -jar client.jar --server test7.contoso.com --alternativeemailaddress fred1@contoso.com --organisation contoso --emailaddress fred@contoso.com --data1 1234 --Password1 123456 --data2 1234 --Password2 1234
我正在尝试从 PowerShell 中 运行 并将输出捕获到变量以供进一步处理。
到目前为止,我已经找到了 100 多种不同的方法,但是 none 确实效果特别好。
有没有最好的practice/convention如何做到这一点?
参见:https://blogs.technet.microsoft.com/josebda/2012/03/03/using-windows-powershell-to-run-old-command-line-tools-and-their-weirdest-parameters/
对于使用 PowerShell
执行 "legacy" 命令的多种方法
您需要包含一个 .exe。
新的 V3+ 推荐方法是使用 --% 告诉 PowerShell 不要解析剩余的参数
PS> java.exe --% -jar client.jar --server test7.contoso.com --alternativeemailaddress fred1@contoso.com --organisation contoso --emailaddress fred@contoso.com --data1 1234 --Password1 123456 --data2 1234 --Password2 1234
好的,所以我解决了。这就是我的选择。
$params = @{ 'jar'='C:\client\client.jar';
'param1'='data1'
'param2'='data2'
'param3'='data3'
'param4'='data4'
'param5'='data5'
'param6'='data6'
'param7'='data7'
'param8'='data8'
'param9'='data9'
'param10'='data10'
'error_log'='C:\tmp\error_log.txt'
}
$data = & 'C:\Program Files\java\jdk1.8.0_121\bin\java.exe' -jar $params.'jar' `
--param1 $params.param1 `
--param2 $params.param2 `
--param3 $params.param3 `
--param4 $params.param4 `
--param5 $params.param5 `
--param6 $params.param6 `
--param7 $params.param7 `
--param8 $params.param8 `
--param9 $params.param9 `
--param10 $params.param10 `
2>$params.error_log
所以我有以下命令 运行s java 从命令行应用程序并产生一堆输出。
java -jar client.jar --server test7.contoso.com --alternativeemailaddress fred1@contoso.com --organisation contoso --emailaddress fred@contoso.com --data1 1234 --Password1 123456 --data2 1234 --Password2 1234
我正在尝试从 PowerShell 中 运行 并将输出捕获到变量以供进一步处理。
到目前为止,我已经找到了 100 多种不同的方法,但是 none 确实效果特别好。
有没有最好的practice/convention如何做到这一点?
参见:https://blogs.technet.microsoft.com/josebda/2012/03/03/using-windows-powershell-to-run-old-command-line-tools-and-their-weirdest-parameters/ 对于使用 PowerShell
执行 "legacy" 命令的多种方法您需要包含一个 .exe。 新的 V3+ 推荐方法是使用 --% 告诉 PowerShell 不要解析剩余的参数
PS> java.exe --% -jar client.jar --server test7.contoso.com --alternativeemailaddress fred1@contoso.com --organisation contoso --emailaddress fred@contoso.com --data1 1234 --Password1 123456 --data2 1234 --Password2 1234
好的,所以我解决了。这就是我的选择。
$params = @{ 'jar'='C:\client\client.jar';
'param1'='data1'
'param2'='data2'
'param3'='data3'
'param4'='data4'
'param5'='data5'
'param6'='data6'
'param7'='data7'
'param8'='data8'
'param9'='data9'
'param10'='data10'
'error_log'='C:\tmp\error_log.txt'
}
$data = & 'C:\Program Files\java\jdk1.8.0_121\bin\java.exe' -jar $params.'jar' `
--param1 $params.param1 `
--param2 $params.param2 `
--param3 $params.param3 `
--param4 $params.param4 `
--param5 $params.param5 `
--param6 $params.param6 `
--param7 $params.param7 `
--param8 $params.param8 `
--param9 $params.param9 `
--param10 $params.param10 `
2>$params.error_log