2012-12-04 54 views
2

我想在Windows上用OpenSSL加密一些表單數據,我很難搞清楚什麼是正確的語法。使用以下命令,OpenSSL返回一條PKCS7消息,但仍然給我一條& was unexpected at this time消息。帶有括號和流水線的多行Windows shell命令

(openssl smime -sign -signer client-public.pem -inkey client-private.pem -outform der -nodetach -binary^ 
formkey1=formvalue1^ 
formkey2=formvalue2^ 
formkey3=formvalue3^ 
^ 
^ 
) | openssl smime -encrypt -des3 -binary -outform pem server-public.pem 

我感覺我在管道出現會引起一些問題,但我不知道我應該做的事情有一個乾淨的,沒有錯誤的結果。

+0

這是不完整的劇本,是嗎?請你張貼完整的一張。 – 0xC0000022L

+0

這是完整的腳本。 OpenSSL可執行文件在我的PATH中。 – louisroy

回答

3

沒有必要將其分成多行。
所以你應該首先測試它是否在單一行上工作。

然後你可以使用多行插入符號,但是不要忘記在下一行添加一個空格,否則它會將整個文本粘貼在一起,沒有任何分隔符。
在右括號之前插入的脫字符號將失敗,因爲多行脫字符將轉義下一行的第一個字符,所以右括號不會關閉任何內容。

這應該工作

(openssl smime -sign -signer client-public.pem -inkey client-private.pem -outform der -nodetach -binary^ 
formkey1=formvalue1^ 
formkey2=formvalue2^ 
formkey3=formvalue3^ 
^ 
^ 
) | openssl smime -encrypt -des3 -binary -outform pem server-public.pem 
+0

謝謝。我錯過了下一行的空間。 – louisroy