使用接收的文件名作为批处理文件中exe的参数

时间:2017-03-08 13:43:18

标签: xml loops batch-file base64

我在不同的子目录中有很多xml文件,并希望将xml文件编码为base64并将每个编码的blob保存在txt中。我使用Windows .NET Framework Ba​​se64转换器使用以下命令对单个文件进行编码: base64Converter.exe / e myinputfile.xml mybase64outputfile.txt

这适用于单个文件,但我必须编码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 )

我感谢任何帮助!

1 个答案:

答案 0 :(得分: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。

感谢您的提示!