Я новичок в командной строке работы и не уверен, если это возможно, чтобы делать то, что я хочу в этом файле .bat ...Windows .bat парный цикл процесса?
У меня есть пары изображений в инфракрасном и естественный цвет имени, как это «001_x_y_NIR.tif» и "001_x_y_RGB.tif", где ведущие три цифры служат для идентификации пар изображений.
Этот код объединяет полосы изображений из двух трехполосных входных файлов в один 4-полосный файл изображения.
Я хочу, чтобы следующий код запускался через папку, содержащую несколько пар изображений NIR/RGB, так что она выполняет пакет на 001_x_y_NIR.tif и 001_x_y_RGB.tif, а затем делает это на 002 ..., 003. .., и т. д.
Как написано, это хорошо работает, если у меня есть только одна пара в исходной папке, но я не знаю, что делать, чтобы она проходила по очереди.
set path=%path%;C:\userbin\gdal;
mkdir single_band
for %%i in (*.tif) do gdal_translate -b 1 -of "gtiff" -co "tfw=yes" -a_srs "epsg:26717" %%i .\single_band\B1_%%~ni.tif
for %%i in (*.tif) do gdal_translate -b 2 -of "gtiff" -co "tfw=yes" -a_srs "epsg:26717" %%i .\single_band\B2_%%~ni.tif
for %%i in (*.tif) do gdal_translate -b 3 -of "gtiff" -co "tfw=yes" -a_srs "epsg:26717" %%i .\single_band\B3_%%~ni.tif
cd /single_band
for /f "delims=_. tokens=1-6" %%i in ('dir /b *.t??') do ren %%i_%%j_%%k_%%l_%%m.%%n %%i_%%m.%%n
gdalbuildvrt -separate -overwrite 4bandout_IRGB.vrt B1_NIR.tif B1_RGB.tif B2_RGB.tif B3_RGB.tif
mkdir 4band
gdal_translate -of "gtiff" -co "tfw=yes" -a_srs "epsg:26717" 4bandout_IRGB.vrt .\4band\IRGB.tif
del *.t??
....... С помощью mihai_mandis ответа (СПАСИБО!):
for %%i in (*NIR.tif) do (
set RGBName=%%i
set RGBName=!RGBName:NIR=RGB!
echo %%i,!RGBName! >>.\single_band\RGBNIR_list.txt
получить список .txt:
001_x_y_NIR.tif, 001_x_y_RGB.tif
002_a_b_NIR.tif, 002_a_b_RGB.tif
и т.д ...
Мне очень хотелось бы позвонить в этот .txt. список и прокручивать его по строкам, пару по паре, чтобы выполнить мой процесс, создавая мои выходы для первой пары, удаляя мои промежуточные файлы, а затем перемещаясь по второй паре и т. д.
Также, чтобы не перезаписывать мои выходы, я хотел бы нести ведущие трехзначные идентификаторы до моего конечного продукта как XXX_IRGB.tif ... Любая другая мысль?
Благодаря
Обязательно ли это быть периодическим? Если вы начинаете новый с консольной/командной строки в Windows, вы должны дать PowerShell внешний вид, так как это путь вперед. – alroc