如何编写带起止变量的终端循环命令批量转换GoPro RAW图像?
批量转换GoPro RAW(GPR)文件的循环脚本
当然可以编写循环脚本批量处理连续编号的GPR文件,以下是针对不同操作系统的实现方案:
Linux/macOS(Bash脚本)
创建一个名为convert_gpr.sh的文件,内容如下:
#!/bin/bash # 设置需要处理的文件编号范围 START=28513 END=33512 # 替换为你的实际文件路径 SOURCE_DIR="/path/to/gpr/files" OUTPUT_DIR="/path/to/save/dng/files" # 遍历编号范围 for (( num=START; num<=END; num++ )) do input_file="${SOURCE_DIR}/G00${num}.GPR" output_file="${OUTPUT_DIR}/G00${num}.DNG" # 仅处理存在的文件,避免无效操作 if [ -f "$input_file" ]; then gpr_tools -i "$input_file" -o "$output_file" echo "转换完成: $input_file → $output_file" else echo "文件不存在,跳过: $input_file" fi done
使用方法:
- 修改
SOURCE_DIR和OUTPUT_DIR为实际路径 - 给脚本添加执行权限:
chmod +x convert_gpr.sh - 运行脚本:
./convert_gpr.sh
Windows(批处理脚本)
创建一个名为convert_gpr.bat的文件,内容如下:
@echo off setlocal enabledelayedexpansion :: 设置需要处理的文件编号范围 set START=28513 set END=33512 :: 替换为你的实际文件路径 set SOURCE_DIR=C:\path\to\gpr\files set OUTPUT_DIR=C:\path\to\save\dng\files :: 遍历编号范围 for /l %%n in (%START%,1,%END%) do ( set input_file=!SOURCE_DIR!\G00%%n.GPR set output_file=!OUTPUT_DIR!\G00%%n.DNG :: 仅处理存在的文件 if exist "!input_file!" ( gpr_tools -i "!input_file!" -o "!output_file!" echo 转换完成: !input_file! → !output_file! ) else ( echo 文件不存在,跳过: !input_file! ) ) endlocal pause
使用方法:
- 修改
SOURCE_DIR和OUTPUT_DIR为实际路径 - 双击运行
convert_gpr.bat即可
注意事项
- 确保
gpr_tools已添加到系统环境变量,或者在脚本中使用工具的完整路径(例如/usr/local/bin/gpr_tools或C:\tools\gpr_tools.exe) - 如果编号格式有变化(比如前缀不是
G00),只需修改脚本中文件名拼接的部分即可
内容的提问来源于stack exchange,提问作者Jayden Lawson
相关产品推荐
相关产品推荐

