2017-03-08 47 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。

感谢您的提示!

相关问题