2016-09-29 74 views
0

写了这个powershell脚本来尝试签署一个jar文件。建立正确的命令后,它基本上是这样的:为什么我的Powershell脚本签名不正确的jar?

$command = "jarsigner -storetype pkcs12 -keystore $certToUse -signedjar $nameOfSignedJar $nameOfJarToSign $defaultAlias" 
Write-Output $command 
Invoke-Expression $command 

写入输出线打印出:

jarsigner -storetype pkcs12 -keystore MyCertificate.p12 -signedjar signed_sample.jar sample.jar "this is my test alias, inc.'s comodo ca limited id" 

然而,当调用,表达运行时,它基本上只是挂起并没有什么事情发生。如果我在PowerShell中运行这个确切的命令,系统会提示输入密码,然后对我的JAR文件进行签名。

我在做什么错了,我该如何做到这一点,以便当它询问我的密码,然后我可以通过相同的脚本传入它?

在此先感谢。

回答

0

可能是在你的$默认别名转义报价的问题:

$defaultalias = "`"this is my test alias, inc.`'s comodo ca limited id`"" 
+0

您给出的示例在PowerShell ISE中给我一个错误。 我逃避采用双单引号,像这样的单引号: $ defaultAlias =“‘这是我的测试别名,INC“的科摩多CA有限ID’” – dalvacoder

+0

什么错误没有给出? – BenH

+0

表达式或语句中的意外标记's'。编辑器将其标记为错误。 – dalvacoder

0

显然,问题在于使用PowerShell ISE。通过PowerShell直接运行脚本工作得很好。

相关问题