Итерация инструментов grib по папке с файлами grib

Я пытаюсь массово преобразовать большое количество файлов GRIB в netCDF с помощью инструментов grib (у меня Windows 7) в пакетном файле.

Я использую этот код:

for /f %%f in (`dir /b O:\Praksa\incadata\2014\01\01`) 
   do 
     echo %%f grib_to_netcdf -D NC_FLOAT -o *.nc *.grb

Но когда я запускаю его, кажется, ничего не происходит, кроме очень быстрого открытия и закрытия CMD.

Вероятно, я пропустил какую-то синтаксическую ошибку, но мой главный вопрос: могу ли я использовать подстановочные знаки (*) в операторах инструментов grib? Кроме того, проблематичны ли пробелы в путях к каталогам?

Спасибо!


person peroman200    schedule 04.07.2017    source источник
comment
Измените обратные кавычки вокруг команды dir на одинарные кавычки ', как описано в документации. Добавьте инструкцию pause в следующей строке, чтобы окно оставалось открытым, или, что предпочтительнее, запускайте из командной строки, не нажимая пакет.   -  person Magoo    schedule 04.07.2017


Ответы (1)


Вы ошиблись в синтаксисе. cmd очень требователен к синтаксису. Попробуй это:

@echo off
for /f %%A in ('dir /b /a-d z:\*') do (
     echo %%~fA grib_to_netcdf -D NC_FLOAT -o %%~dpnA.nc %%~dpnA.grb
)

%%~fA дает вам полное имя файла, %~dpnA только Drive, Path и Name. См. for /? для этих модификаторов. dir /a-d исключает имена папок. См. dir /? для получения дополнительной информации.

person Stephan    schedule 05.07.2017