2017-03-08 30 views
0

我在不同的子目錄中有很多xml文件,並且希望將xml文件編碼爲base64,並將每個編碼的blob保存在txt中。我使用Windows .NET框架的Base64轉換編碼與命令一個單一的文件: base64Converter.exe/E myinputfile.xml mybase64outputfile.txt使用收到的文件名作爲批處理文件中的exe的參數

這適用於一個單一的文件,但我有編碼148個文件。所以我想用批處理文件來做到這一點。我是批量寫作的新手,需要一些幫助。

我想通了什麼現在:

FOR /r %%d IN (*.xml) DO (

SET XML=%%d 

echo %XML% 

) 

FOR /r %%r IN (*.xml) DO (

START "" "Patch to base64Converter.exe" /e %XML% out.txt 

) 

PAUSE 

我想從第一循環的文件名寫入一個變量並處理這個變量的base64Converter.exe。但是我的var'XML'存儲絕對路徑。我能做些什麼來在base64Converter.exe的正確目錄中提供文件名?或者括號中是否有語法錯誤?是否也可以覆蓋我的xml文件並將base64 blob正確保存在文件中?

我的輸出:

C:\Users\myUser\Desktop\mydirectory>(START "" "c:\Users\myUser\Desktop\mydirectory\b64c.exe" /e C:\Users\myUser\Desktop\mydirectory\MyData\ViewBase\panelManager.LayoutStream.xml out.txt) 

我明白任何形式的幫助!

+0

如果您閱讀FOR命令幫助文件的底部部分,您將看到需要修改FOR變量的內容。 – Squashman

+0

你的意思是哪個幫助文件? – PeterX

+0

幾乎所有在cmd提示符下使用的命令,包括任何第三方實用程序都有某種可以訪問的幫助文件格式。在大部分情況下,這是通過輸入命令名稱,然後輸入正斜槓和問號完成的:'FOR /?' – Squashman

回答

0

更新

我想通了,並寫了一個批處理文件,我的目的。

FOR /R %%d IN (*.xml) DO (

REM create an empty txt with the same filename 
echo. 2>%%~pd%%~nd.txt 

REM Execute b64c.exe with parameters 
START "" /B "%PATH%\b64c.exe" /e "%%~fd" "%%~pd%%~nd.txt" 

) 

我使用FOR循環的參數來獲取完整路徑並將它們傳遞給base64Converter。

感謝您的提示!

相關問題