2014-09-25 57 views
1

我是編程+使用MIT版本的Torque 2D遊戲引擎的新手。 由於某些原因,引擎要求圖像具有與其關聯的XML(.TAML)文件 。這個文件應該根據圖像文件名來命名。批處理腳本 - 基於文件夾中的每個.PNG文件創建.XML文件

我有一百個需要添加XML文件的.png文件。我認爲編寫腳本是解決這個問題的最好方法。我需要一些幫助/指導,以瞭解如何編寫批處理腳本來幫助我完成此任務。

下面是腳本的邏輯的一個示例:

1.主文件夾是「資產」的文件夾。 批處理文件將運行並首先檢查圖像的「資產」。

a)如果沒有找到圖像,它將檢查所有子文件夾。

二)如果發現一個文件時,它會使用PNG文件名

C上創建一個文本文件),將填寫文本文件頭和補ASSETNAME = & ImageName =與PNG文件名稱字段。

d)它會追加.asset.taml擴展名保存並關閉並繼續循環。

e)完成打印成功消息並退出時。 (如果我想看看,我可以跟蹤添加了多少個文件。)

模擬: 在assets文件夾中運行程序。

資產/圖像/ 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"/> 

批處理腳本將繼續尋找下一個文件:(注意它找到了一個新的子目錄) 個資產/圖像/背景/ 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

+0

如果文件在子目錄中發現更深,應該'xsi:noNamespaceSchemaLocation'更改它的位置嗎? – npocmaka 2014-09-25 09:38:02

+0

Hello npocmaka,模式將位於資產文件夾外的其自己的目錄中。 – joegammer007 2014-10-01 05:03:42

回答

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的設置以適合您的情況。

+0

模式文件將包含在所有圖像的相同位置。我會給她一個鏡頭,看看我是否遇到任何問題。謝謝您的回答。 – joegammer007 2014-09-30 05:50:29

相關問題