2012-02-24 1 views
1

Функция pdftk "dump_data" может использоваться для доставки метаинформации о pdf, включая количество страниц. Следующая команда ...Win bat file: Как получить результат FIND в новую переменную?

pdftk test.pdf dump_data | find "NumberOfPages" 

... выводит полную линию дампа данных, например:

"Number of pages: 32" 

Как я могу получить значение счетчика (32 в предыдущем случае) в новый переменная для дальнейшей обработки в файле bat?

ответ

3

Если формат строки фиксирован и соответствует один вы показали, вы можете попробовать что-то вроде этого:

@ECHO OFF 
>testfile ECHO Number of pages: 32 
FOR /F "delims=: tokens=2" %%A IN ('TYPE testfile ^| FIND "Number of pages"') DO SET /A pagenum=%%A 
ECHO %pagenum% 

Выходы:

32 

Естественно, >testfile ECHO ... линия просто для целей тестирования, а часть TYPE testfile петли FOR должна быть заменена на ваш pdftk test.pdf dump_data.

2

Попробуйте это:

FOR /F "usebackq delims=" %%v IN (`pdftk test.pdf dump_data ^| find "Number of pages"`) DO (
    FOR /F "delims=: tokens=1,2" %%i IN ("%%v") DO set NBPAGES=%%j 
) 

Обратите внимание, что вы должны использовать два % перед каждым переменными в приведенном выше примере, если вы используете его в пакетном файле. Если вы используете его непосредственно с консоли, используйте только один номер %.

 Смежные вопросы

  • Нет связанных вопросов^_^