批处理脚本 - 创建.XML文件 - 基于文件夹中的每个.PNG文件的名称

时间:2014-09-25 06:39:56

标签: xml batch-file

我是编程+使用MIT版Torque 2D游戏引擎的新手。 由于某种原因,引擎要求图像具有XML(.TAML)文件 与之相关联。应根据图像文件名命名此文件。

我有一百个需要添加XML文件的.png文件。我认为编写脚本是解决这个问题的最佳方法。我需要一些关于如何编写批处理脚本的帮助/指导来帮助我完成这项任务。

以下是脚本逻辑的示例:

1.主文件夹是“assets”文件夹。 批处理文件将运行并首先检查图像的“资产”。

a)如果没有找到图像,则会检查所有子文件夹。

b)如果找到文件,它将使用png文件名

创建一个文本文件

c)它将填写文本文件头并填写AssetName =& ImageName =具有png文件名的字段。

d)它将附加.asset.taml扩展名保存并关闭并继续循环。

e)完成打印成功消息并退出。 (如果我想得到想象,我可以跟踪添加了多少文件。)

模拟: 在资产文件夹中运行程序。

资产/图像/ check.png

批处理文件将创建一个名为:

的xml文本文件

check.asset.taml(.taml是XML文件)

XML文件的内容如下所示:

<ImageAsset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../Torque2D.xsd"
            AssetName="check"
            ImageFile="check.png"/>  

批处理脚本将继续并找到下一个文件:(注意它找到了一个新的子目录) assets / images / backgrounds / background.png

并在正确的目录中输出新的xml

background.asset.taml

The XML file Content: 
<ImageAsset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../Torque2D.xsd"
            AssetName="background"
            ImageFile="background.png"/> 

我很感激有关如何编写此脚本的任何帮助和指导。 不确定“C”,“C ++”,Python,其他语言是否最好写入?

谢谢,

-Joe

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "targetdir=U:\destdir"
SET /a filecount=0
SET "and_subdirs="
:again
PUSHD "%targetdir%"
FOR %and_subdirs% %%a IN (
  "*.png"
 ) DO (
  SET /a filecount+=1
  >"%%~dpna.taml" (
   ECHO(^<ImageAsset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../Torque2D.xsd"
   ECHO(         AssetName="%%~na"
   ECHO(         ImageFile="%%~nxa"/^>
  )
)
popd
IF NOT DEFINED and_subdirs IF %filecount%==0 SET "and_subdirs=/r"& GOTO again
ECHO(%filecount% files found
IF DEFINED and_subdirs ECHO(Subdirectories were scanned

GOTO :EOF

这应该可以解决您的问题。您需要更改targetdir的设置以适合您的具体情况。