优化 @echo off setlocal EnableDelayedExpansion set "texturepacker=E:\TexturePacker\bin\TexturePacker.exe" set "outputDir=G:\tp\" for /r %%i in (*.png) do ( set "path=%%~dpi" set "a=false" for /f %%j in ('dir /b /a-d "!path!"*.png') do ( set "a=true" ) if !a! == true ( echo !path! REM echo %%i REM echo %%~nxi REM echo %%~pi set "a=%%~pi" REM echo !a! set "a=!a:\act=!" set "b=!a:\=!" REM echo !b! set "c=!outputDir!;!b!" set "outpath=!c:;=!" echo !outpath! "%texturepacker%" --sheet "!outpath!.png" --data "!outpath!.plist" --trim --allow-free-size --enable-rotation --max-size 1024 !path! ) else ( echo false ) ) echo Done. pause
时间: 2023-07-13 16:08:22 浏览: 213
raindemo.bat
这段代码是一个批处理脚本,它的主要作用是使用TexturePacker软件对指定文件夹中的所有PNG图片进行打包处理,并将输出结果保存到指定的目录中。具体实现过程如下:
1. 首先定义了两个变量,分别为TexturePacker软件的路径和输出目录的路径。
2. 然后使用for /r命令遍历指定目录及其子目录中的所有PNG图片。
3. 在遍历每个PNG图片的过程中,先获取该图片所在的文件夹路径,然后再通过dir命令查找该文件夹中是否还有其他的PNG图片。
4. 如果该文件夹中有其他PNG图片,则表示需要对该文件夹中的所有PNG图片进行打包处理;否则说明该文件夹只有一个PNG图片,无需进行打包处理。
5. 如果需要进行打包处理,则先将该文件夹路径中的"\act"字符串替换为空字符串,然后再将路径中的反斜杠替换为分号,以便后续能够将多个文件夹路径拼接成一个字符串。
6. 将拼接好的输出路径字符串传递给TexturePacker软件,执行打包处理操作。
7. 最后输出"Done.",并等待用户按下任意键结束程序的运行。
需要注意的是,该脚本中使用了延迟环境变量扩展(EnableDelayedExpansion),以便在for循环中能够正确地获取变量的值。同时,在获取文件夹路径时,使用了set "path=%%~dpi"语句,而不是直接使用%%~dpi,是因为在批处理中path是一个系统环境变量,为了避免与系统变量冲突,需要将其定义为一个新的变量名。
阅读全文