2014-03-01 68 views
1

我想在運行OpenSSL命令時從我的輸出文件中刪除回車。從窗口中刪除回車Openssl命令

這是我的代碼,我得到的錯誤tr是無法識別的,因爲這是UNIX命令。但我怎麼能轉換成批處理命令Openssl的命令鏈路內

openssl enc -aes-256-cbc -K "C:\cat aes_key.txt" -iv "C:\aes_iv.txt" -in plaintext.xml | openssl enc -e -base64 | tr -d '\n' > encrypted.txt 
+0

的文件名和路徑也許tr.exe從[GNU工具爲Win32(HTTP://unxutils.sourceforge。淨/)可以幫助你? – jariq

回答

0

替換該|tr -d '\n' > encrypted.txt有repl.bat命令

|repl "\r" "" xm > encrypted.txt 

這假定它是一個CR而不是CRLF這是正常的Windows行結束。如果要替換CRLF然後用"\r\n"

這將使用名爲repl.bat一個幫手批處理文件 - 下載來​​自:https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

repl.bat在同一文件夾中的批處理文件或者是道路上的一個文件夾中。

+0

該鏈接未打開..你能否粘貼來自repl的代碼? –

+0

我現在得到了代碼..你能告訴我你的命令是什麼xm嗎?它是否是xml內容作爲變量?如果是這樣的話,在現有的shell腳本(以前寫過的)中,它們沒有傳遞任何變量。那麼我可以從我的命令中刪除這個xm嗎? –

+0

xm是repl.bat的開關,與XML無關。運行'repl /?'進入幫助屏幕。 – foxidrive

0

感謝您的支持。我用vbscript找到了一個解決方案。我已經寫了下面的VBScript並將其保存爲VBS文件,並通過一個需要CRLF remvoed

Const ForReading = 1 
Const ForWriting = 2 
strFileName = Wscript.Arguments(0) 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile(strFileName, ForReading) 
WScript.Echo "Checking" 
strText = objFile.ReadAll 
objFile.Close 
strNewText = Replace(strText, chr(010), "") ' chr(010) = line feed chr(013) = carriage return 

Set objFile = objFSO.OpenTextFile(strFileName, ForWriting) 
WScript.Echo strNewText 
objFile.WriteLine strNewText 
objFile.Close