求自动归类cue/bin ROM文件、适配chd格式转换的自动化脚本
ROM批量整理转CHD脚本
前置依赖:提前安装chdman工具,确保命令行可直接调用该命令。
提供两个平台的脚本,直接放到ROM存放的根目录运行即可,自动完成以下操作:
- 按游戏标题(即.cue文件的无后缀名,和你手动F2复制的文件名完全一致)创建独立文件夹
- 将同标题的.cue、.bin轨道文件全部移入对应文件夹
- 遍历文件夹批量转换CHD格式,转换完成后将.chd成品移回根目录
- 默认转换完成后自动删除临时存放源文件的文件夹,不需要该功能可注释脚本中对应删除行
Windows 批处理版本
将以下代码保存为chd_batch.bat,放到ROM根目录双击运行:
@echo off setlocal enabledelayedexpansion echo 正在按游戏分组整理CUE/BIN文件... for %%f in (*.cue) do ( set "game_title=%%~nf" if not exist "!game_title!" md "!game_title!" move "!game_title!.cue" "!game_title!\" >nul move "!game_title! (Track *.bin" "!game_title!\" >nul 2>nul ) echo 开始批量转换CHD文件... for /d %%d in (*) do ( echo 当前转换: %%d cd "%%d" for %%c in (*.cue) do ( chdman createcd -i "%%c" -o "..\%%d.chd" ) cd .. :: 不需要删除源文件文件夹就把下一行前面加::注释 rd /s /q "%%d" ) echo 全部任务完成,CHD文件已输出到当前根目录 pause
Linux/macOS Shell版本
将以下代码保存为chd_batch.sh,放到ROM根目录,先执行chmod +x chd_batch.sh赋予执行权限,再运行./chd_batch.sh即可:
#!/bin/bash echo "正在按游戏分组整理CUE/BIN文件..." for cue_file in *.cue; do [ -f "$cue_file" ] || continue game_title="${cue_file%.cue}" mkdir -p "$game_title" mv "$cue_file" "$game_title"/ 2>/dev/null mv "${game_title} (Track "*.bin "$game_title"/ 2>/dev/null done echo "开始批量转换CHD文件..." for game_dir in */; do game_title="${game_dir%/}" echo "当前转换: $game_title" cd "$game_title" for cue_file in *.cue; do [ -f "$cue_file" ] || continue chdman createcd -i "$cue_file" -o "../${game_title}.chd" done cd .. # 不需要删除源文件文件夹就把下一行前面加#注释 rm -rf "$game_title" done echo "全部任务完成,CHD文件已输出到当前根目录"
运行提示:首次使用建议先复制3-5组ROM文件到空目录测试脚本运行逻辑,确认文件移动、转换结果符合预期后再全量运行,避免文件意外丢失。
内容的提问来源于stack exchange,提问作者user33plus1
相关产品推荐
相关产品推荐

