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

Use a received file name as a parameter for an exe in a batch file

我在不同的子目录中有很多 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 )

感谢任何帮助!

更新

我弄清楚了,并为我的目的写了一个批处理文件。

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。

感谢您的提示!