如何使用gdal和cmd循环遍历多个文件?

时间:2013-05-22 12:35:00

标签: gdal

我有几个具有tif格式的文件。我想将它们翻译成ENVI格式。 我成功了一个文件,但我想为目录中的其余文件做。

   the first file in the directory is:Ser_W55_20100101_A.tif.
   the second file in the directory is:Ser_W55_20100102_A.tif    and so on .....

我在Windows上工作,所以我只是启动cmd然后编写命令:

 C:\Users>gdal_translate -of "ENVI" D:\Ser_W55_20100101_A.tif D:\Ser_W55_20100101_A.img

这完美无缺。有关如何为所有文件执行此操作并返回相同名称的任何想法(从(tif)更改为ENVI)

1 个答案:

答案 0 :(得分:4)

您可以为此制作批处理文件,执行以下操作:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET mypath=D:\test\

FOR /F %%i IN ('DIR /B %mypath%*.tif') DO (

    SET infile=%%i
    SET outfile=!infile:.tif=.img!

    gdal_translate -of "ENVI" %mypath%!infile! %mypath%!outfile!

)

这只在de current目录中运行,如果要包含子文件夹,请将/S标志添加到dir语句中。我可能最好先查看发生了什么,为此您可以在gdal cmd前添加ECHO,所以ECHO gdal_translate...,并在最后添加PAUSE。这样它只会将命令打印到控制台而不是实际运行它们。