对于/ f命令行

时间:2015-06-22 13:43:22

标签: batch-file for-loop cmd

我想在命令行的变量中保存证书的别名。 获取有关我使用的证书的信息:

keytool -list -keystore mykeystore -storepass xyz

结果如下:

Keystore type: JKS

Keystore provider: SUN

Your keystore contains 1 entry

certreq-ip[...]ac37, 22.06.2015m PrivateKeyEntrym

Certificate fingerprint (SHA1): AE:5A:....**

我的命令如下:

for /F "tokens=1,2 delims= " %A IN ('keytool -list -keystore mykeystore.jks -storepass myKeystorePassword') do set alias=%B

我想得到的是来自" certreq"的字符串部分。直到逗号。

任何人都可以帮助我吗?我认为空间是错误的分隔符,因为我想获得第一个项目,当然之前没有空格。但是不可能使用像"token=0,1"...

这样的东西

1 个答案:

答案 0 :(得分:2)

如果你想要的是$out,那么:

certreq-ip[...]ac37

似乎有效。您正在以for /f "delims=," %a in ('keytool -list -keystore mykeystore.jks -storepass myKeystorePassword^|findstr PrivateKeyEntry') do set alias=%a 过滤,因为Stavr00建议并使用逗号作为分隔符。请注意,如果您将其放入批处理文件中,PrivateKeyEntry将需要成为%a