【问题标题】:Batch Script - create an .XML file - name based on every .PNG file in folder批处理脚本 - 创建一个 .XML 文件 - 基于文件夹中每个 .PNG 文件的名称
【发布时间】:2014-09-25 06:39:56
【问题描述】:

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

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

下面是脚本的逻辑示例:

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

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

b) 如果它找到一个文件,它将使用 png 文件名创建一个文本文件

c) 它将填充文本文件头并使用 png 文件名填充 AssetName= 和 ImageName= 字段。

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

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

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

assets/images/check.png

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

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"/>  

批处理脚本将继续并找到下一个文件:(注意它找到了一个新的子目录) 资产/图像/背景/背景.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、其他语言是否最好写?

谢谢,

-乔

【问题讨论】:

  • 如果在子目录的更深处发现文件,xsi:noNamespaceSchemaLocation 是否应该更改其位置?
  • 您好 npocmaka,该架构将位于资产文件夹之外的自己的目录中。

标签: xml batch-file


【解决方案1】:
@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 的设置以适应您的情况。

【讨论】:

  • 架构文件将包含在所有图像的同一位置。我会给她一个机会,看看我是否遇到任何问题。谢谢你的回答。
猜你喜欢
  • 2018-04-22
  • 2011-04-05
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
相关资源
最近更新 更多