【发布时间】:2017-03-08 13:43:17
【问题描述】:
我在不同的子目录中有很多 xml 文件,我想将 xml 文件编码为 base64 并将每个编码的 blob 保存在 txt 中。我使用 Windows .NET Framework Base64 转换器通过以下命令对单个文件进行编码: 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命令的帮助文件的最底部部分,您将看到修改 FOR 变量所需的内容。 -
你指的是哪个帮助文件?
-
您在 cmd 提示符下使用的几乎所有命令(包括任何第三方实用程序)都有某种形式的帮助文件可供您访问。在大多数情况下,这是通过键入命令名称后跟正斜杠和问号来完成的:
FOR /? -
如果你很懒。 [微软](technet.microsoft.com/en-us/library/bb490890.aspx) 和SS64 NT A-Z
-
好的,所以我在文档中找到了参数。并使用 SET XML=%%~fd 获取 xml 文件的完整路径,将其存储在变量中并将其作为第一个参数提供给 base64Converter.exe。将编码的 blob 写入新文件(第二个参数)的好方法是什么?更好的解决方案是覆盖 xmls。这可能吗?
标签: xml loops batch-file base64