Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Работа с циклом в BAT файле

Ответить
Настройки темы
CMD/BAT - Работа с циклом в BAT файле

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Есть задача пройтись программой по файлам и объединить их в единый pdf файл.
Для этого нашел программу prince, которая может помочь и у которой есть возможность работы с командной строкой.
Подходит в данном случае только она (других перепробовал много; связано с особенностью задачи).

Данный скрипт работает отлично.
Код: Выделить весь код
@ECHO OFF
SetLocal EnableDelayedExpansion
prince^
 D:\finalWEB\xml\page1.html^
 D:\finalWEB\xml\page2.html^
 D:\finalWEB\xml\page3.html^
 D:\finalWEB\xml\page4.html^
 -o D:\finalPDF\final.pdf 
Stop
EndLocal
то есть как и сказано в документации здесь:
prince doc1.html doc2.html -o out.pdf
Combine doc1.html and doc2.html into a single PDF file, out.pdf.

Пробовал сделать что-то с циклом такое:
Код: Выделить весь код
@ECHO OFF
SetLocal EnableDelayedExpansion
prince^
FOR /L %%i IN (1, 1, 500) DO (
    SET num=%%x
  D:\finalWEB\xml\page!num!.html^
) 
 -o D:\finalPDF\final.pdf 
Stop
EndLocal
Из очевидных проблем: цикл не работает потому что я соединяю в строку prince и FOR))

Буду рад помощи!

Отправлено: 15:27, 31-12-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


mforim, ну, например, Вы можете собрать список и использовать его:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

call :GetTemporaryName

>"%TemporaryName%" (
	for /f "usebackq delims=" %%i in (`2^>nul dir /a:-d /b "*.htm*"`) do echo %%~fi
)

"%ProgramFiles%\prince-11.3.1-win64\bin\prince.exe" --input=html --input-list="%TemporaryName%" --output="Result.pdf"

del /f /q "%TemporaryName%"

endlocal
exit /b 0

rem ==========================================================================
rem Функция GetTemporaryName()
rem 
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
	setlocal enableextensions enabledelayedexpansion

:NextName
	set sTempName=%temp%\temp%random%.tmp

	if exist "%sTempName%" goto :NextName

	set sProcName=%~0

	endlocal & set %sProcName:~4%=%sTempName%
	exit /b 0
rem ==========================================================================

или, для Вашего случая нумерованных файлов, вместо for /f:
Скрытый текст
Код: Выделить весь код
>"%TemporaryName%" (
	for /l %%i in (1, 1, 500) do echo d:\finalWEB\xml\page%%~i.html
)


Проблемы, как обычно, возникнут с именами на кириллице.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:32, 31-12-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Работа с циклом в BAT файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле InVariable Скриптовые языки администрирования Windows 4 22-05-2015 20:06
CMD/BAT - проблема с последовательностью в Bat файле TraKtir Скриптовые языки администрирования Windows 5 14-09-2013 13:15
CMD/BAT - Сочетание клавиш в bat файле. Kamerin Скриптовые языки администрирования Windows 2 20-09-2011 02:22
CMD/BAT - [решено] Работа с 7z.exe в bat\cmd файле Medic84 Скриптовые языки администрирования Windows 5 13-10-2009 15:35
Любой язык - Проверка сетевых ресурсов в BAT-файле chkur Скриптовые языки администрирования Windows 1 03-12-2008 12:39




 
Переход