我在寫一個使用keytool創建自簽名證書的cmd腳本。我想檢查是否已經存在於密鑰庫中的別名,將命令輸出重定向到cmd腳本中的變量
所以我需要執行下面的命令並將它存儲在一個變量中。所以,如果變量爲空我可以假設,別名犯規存在,
keytool -list -v -storepass "%KEYSTORE_PASS%" -keystore cert/seurat-keystore.jks ^| find "Alias name: 1"
我試着用
FOR /F "tokens=* delims=" %%A IN ('keytool -list -v -storepass "%KEYSTORE_PASS%" -keystore cert/seurat-keystore.jks ^| find "Alias name: 1"') DO SET Variable=%%A
echo %Variable%
但它顯示回顯。同樣我在shell腳本中使用下面的代碼實現,
if [ -n "$(keytool -list -v -storepass "${KEYSTORE_PASS}" -keystore cert/seurat-keystore.jks | grep 'Alias name: 1')" ] ; then
fi
如何在cmd腳本中實現相同?任何幫助將是真正可觀的!
乍一看,它看起來像'for'循環中引用的字符串,請參見[這裏](http://stackoverflow.com/questions/5006290/dos-batch-script-for-f-processing-filename- with-spaces) –
'keytool'產生的輸出是什麼?或者,如果你覺得它太大而不能發佈,在用'FIND'解析之後它的哪部分仍然存在? –