2016-11-24 3 views
0

Так что я пытаюсь перебрать кучу PDF-файлы, захватить их количество символов и разделите на 5. Таким образом, вывод должен быть чем-то вроде этого:Разделить число от туалета в Баше + партиях

PDF1.pdf 
400 

PDF2.pdf 
1000 

Предполагая, что PDF1.pdf имеет 2000 символов, а PDF2.pdf имеет 5000 символов. Это то, что я сейчас делаю:

for %%f in (*.pdf) do (
    echo %%~nf.pdf 
    pdftotext %%~nf.pdf -enc UTF-8 - | wc -m 
) 

То, что я на самом деле искать помощь, захватывает значение из wc -m, разделите на 5 и повторить его.

Я пробовал различные вещи, такие как SET /A total=(wc -m)/5, но ничего действительно не получается.

+0

Также тесно связан с [Capture output command CMD] (http://stackoverflow.com/q/14646575) – aschipfl

ответ

2
for %%f in (*.pdf) do (
echo %%~nf.pdf 
for /f %%c in ('pdftotext %%~nf.pdf -enc UTF-8 - ^| wc -m') do set /a words=%%c/5 
call echo %%words%% 
) 

должен сделать трюк. Одинарная кавычка команда, дающая слово-счет, - обратите внимание на каретку, чтобы выйти из трубы. Назначьте требуемое значение words и используйте трюк call echo, чтобы получить результат.

Есть другие возможности ...


с десятичными знаками ...

for /f %%c in ('pdftotext %%~nf.pdf -enc UTF-8 - ^| wc -m') do set /a words=%%c*2 
call echo %%words:~0,-1%%.%%words:~-1%%. 

Умножить на 2 = требуемого значения * 10; показать all-bar-last-char, dot, last-char.

+0

Ад да! Так оно и было. Какую подсказку я могу получить с десятичными знаками? Сейчас он округляет его. – MortenMoulder

+0

Десятичные числа действительно не работали. В этом случае я получил '14100.6.', когда мне нужно было получить« 29.1114 ». – MortenMoulder

+0

Er, в каком случае? Что было '%% c', чтобы отобразить это? Пакет фактически ограничен целыми числами. Как вы получаете '29.1114', разделив целое число на 5? Это означало бы, что 'wc' возвращает 145.557 слов. – Magoo