Запустить команду для определенных c типов файлов - PullRequest
0 голосов
/ 10 февраля 2020

В настоящее время я пытаюсь запустить программу для определенных типов файлов. Ниже приведен мой пакетный скрипт для выполнения следующих действий:

  1. Очистить текстовый файл с именем «Projection.txt»

  2. L oop через все файлы в текущем каталоге

  3. Если найден тип файла .prj, запустите программу gdalsrsinfo.exe и запишите его в текстовый файл

Код здесь:

break>projections.txt
for %%a in (*) do (
if exist *.prj (
echo ".prj file found"
echo %%a >> projections.txt
"C:\Program Files\GDAL\gdalsrsinfo.exe" -e proj4 %%a >> projections.txt
)
)

Я не могу запустить программу только для файлов .prj, она помещает каждый файл в каталог через "gdalsrsinfo.exe".

У меня вопрос, как мне запустить "gdalsrsinfo.exe" только для файлов .prj.

Спасибо

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Следующая методология будет быстрее и эффективнее.

@(For %%G In ("*.prj")Do @(Echo ".prj file found">CON
        Echo %%G
        "%ProgramFiles%\GDAL\gdalsrsinfo.exe" -e proj4 %%G 
   ))>"projections.txt"

Это быстрее и эффективнее, поскольку она не создает выходной файл, а затем открывает, записывает и закрывает его дважды для каждого .prj файл найден.

В более упрощенном формате:

@Echo Off
(
    For %%G In ("*.prj") Do (
        Echo ".prj file found">CON
        Echo %%G
        "%ProgramFiles%\GDAL\gdalsrsinfo.exe" -e proj4 %%G 
    )
)>"projections.txt"
1 голос
/ 10 февраля 2020

Чтобы исправить ваш текущий код.

@echo off
break>projections.txt
for %%a in (*) do (
   if "%%~xa" == ".prj" (
       echo ".prj file found"
       echo %%a >> projections.txt
       "C:\Program Files\GDAL\gdalsrsinfo.exe" -e proj4 %%a >>projections.txt
   )
)

Если, однако, вас интересуют только .prj файлы, а не любой другой файл, вы можете явно отфильтровать его в for l oop и исключить if exist часть.

@echo off
break>projections.txt
for %%a in (*.prj) do (
       echo ".prj file found"
       echo %%a >> projections.txt
       "C:\Program Files\GDAL\gdalsrsinfo.exe" -e proj4 %%a >>projections.txt
   )
...