使用命令行for循环结合gdal_translate批量转换.h5至.tif文件
Windows命令行批量将H5文件转TIF的正确写法
原代码的核心问题
- 目标文件名错误:原命令输出路径用
C:/mypath/%i,会直接保留原H5文件的.h5后缀,导致生成100.h5而非100.tif - 路径拼接问题:HDF5数据源的路径格式拼接有误,且路径大小写不一致(
C:/MyPath/和C:/mypath/)可能引发识别异常 - 权限与路径解析问题:路径未加引号会导致含空格的目录解析失败,若目标目录需管理员权限,未提权会触发权限拒绝错误
修正后的命令
直接在CMD窗口运行:
FOR %i IN (*.h5) DO gdal_translate -of GTiff "HDF5:C:/MyPath/%i://subdataset" "C:/MyPath/%~ni.tif" -a_srs EPSG:XXXX -a_ullr -XX XX XX XX
写入批处理文件(.bat)运行:
@echo off FOR %%i IN (*.h5) DO gdal_translate -of GTiff "HDF5:C:/MyPath/%%i://subdataset" "C:/MyPath/%%~ni.tif" -a_srs EPSG:XXXX -a_ullr -XX XX XX XX
关键修正点说明
%~ni(批处理中为%%~ni):提取不带扩展名的原文件名,确保输出文件为原文件名.tif- 给HDF5数据源和输出路径加双引号:避免路径含空格时出现解析错误
- 统一路径大小写:保持
C:/MyPath/格式一致,消除Windows路径识别歧义
注意事项
- 替换
//subdataset为HDF5文件实际子数据集路径,可通过gdalinfo HDF5:"C:/MyPath/100.h5"命令查看子数据集名称 - 替换
EPSG:XXXX为实际坐标系代码,-a_ullr后的参数替换为正确的地理范围值 - 若仍报权限错误,右键点击命令提示符选择「以管理员身份运行」
- 确保目标目录
C:/MyPath/存在且你有读写权限
内容的提问来源于stack exchange,提问作者MedicineMan
相关产品推荐
相关产品推荐

