Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196

Автоматизация программы для работы по списку

13.06.2013, 22:55. Показов 4239. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Попытаюсь изложить свою задачку.
Мне необходима автоматизация процесса, но не знаю в правильный ли форум ли я излагаю ее...

У меня есть программа, которая в текстовых документах вносит изменения. Работает по следующему принципу - задал ей файлы (можно различными способами) и она работает по принципу найти и заменить. Программа поддерживает открытие нескольких окон.

Пример: В каждом из трех документов(названия файлов разные) есть одинаковый текст "А" и надо заменить этот текст "А" в каждом документе на текст из списка, т.е. в первом документе "А" на "B", во втором "А" на "C", в третьем "А" на "D".
Программа поддерживает работу по спискам. Иначе говоря, можно задать список обрабатываемых файлов и список что найти ("А") и на что заменить ("?"). Так как у меня текст "А" во всех документах, мне необходимо чтобы программа произвела замену константы "А" на некоторое значение из списка для каждого файла в отдельности. То есть взяла первый файл и заменила на первое значение из списка "Найти\заменить", затем второй файл и второе значение из списка и так N количество раз.

Можно как то скриптом или из командной строки заставить программу произвести данные действия?

Вот что нашел в хелпе к программе на английском:
Кликните здесь для просмотра всего текста

WordPipe can be run from a DOS shell or from a shortcut with parameters to make it run automatically. This is very useful for automation and scheduling (by making the short cut an entry in the Start Up folder), and for running WordPipe from a batch file. Here is a complete example:

"C:\Program files\WordPipe\wordpipe.exe" "/f=my replaces.wpp" /G /Q

Note:

Any commands with embedded spaces must be surrounded with double quotes. You must surround the entire command/setting combination e.g. "/f=c:\Program Files\WordPipe\my replacements.wpp" NOT /f="c:\Program Files\WordPipe\my replacements.wpp"
Windows limits the command line length to about 260 characters. You can overcome this limitation by using the /Z=<filename> command to load command line parameters stored in a file. Note that you MUST remove any double quotes from around commands with embedded spaces when you put them in the command file.
Conventions used below:

<> surrounds text that is to be entered. Do NOT enter the '<' and '>' characters

Alternatives are shown in square brackets '[' and ']' with a pipe '|' character between them. Do NOT enter the square brackets or the pipe character - just type the single alternative you require.

Usage:

"C:\Program files\WordPipe\wordpipe.exe" [/MINIMIZED|/MAXIMIZED] ["/F=my replaces.wpp"] [commands] [/G [/Q]]
Where [commands] is zero or more of:

/F=<.wpp filename> Opens a WordPipe settings file.
/REPORT=<report filename> At the conclusion of the job, a text file report is written to the given filename. The /REPORT parameter must be after any /F command and before the /G command.
/G Go. Begin processing replacements with WordPipe. Processing of the command line does not continue until the processing job is complete.
/GS Same as /G, but search only mode.
/I=<filename> Imports a search/replace list from Excel, Tab or CSV-delimited file, and adds it to the end of the grid. The current options settings are used for each row added.
/MAXIMIZED Opens the application maximized.
/MINIMIZED Opens the application minimized.
/Q Quit WordPipe at the end of processing. The current settings are not saved.
/Z=<filename> Read command line parameters from the specified file. Very useful for performing large numbers of changes, or for working around the Windows limitation of approx 260 characters on the command line.
For example, if you had the long command line

start /w wordpipe.exe "/f=my special filter.wpp" /g "/f=my special filter2.wpp" /g "/f=my special filter3.wpp" /g "/f=my special filter4.wpp" /g /q

This would change to something like

start /w wordpipe.exe /z=commands.txt

and the file commands.txt would contain

/f=my special filter.wpp
/g
/f=my special filter2.wpp
/g
/f=my special filter3.wpp
/g
/f=my special filter4.wpp
/g
/q


Как я понял можно прописать в ярлыке эти команды для запуска и выбора списков.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2013, 22:55
Ответы с готовыми решениями:

Какие есть программы для ubuntu, чтобы блокировать доступ к введенному мной списку сайтов?
Желательно, чтобы была в официальном репозитории? И желательно(но не обязательно), чтобы умела блокировать сайты по категориям(оружее,...

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

Автоматизация работы в VK
Предлагаю принять участие в бесплатном тестировании нашего небольшого проекта в помощь владельцам сообществ VK. ...

24
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
14.06.2013, 10:21
Это нужно узнавать у автора программы делал ли он обработку командной строки.
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
14.06.2013, 11:05  [ТС]
Alex77755, первым делом им написал, ответили -" you can automate this from the command line if you need to."
Получается можно. Но вот какими командами и как настроить, естественно, не уточнили.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
14.06.2013, 11:48
Ну там же речь идёт не о программах вообще, а о конкретной: WordPipe
И она разработана с поддержкой коммандной строки.
А вот ваша программа неизвестно. И как я понял ответ:
Если вам нужна автоматизация, то вы можете это согласовать к командой разработчиков программы.
Типа они могут по вашей заявке добавить необходимый функционал.
В школе 40 лет назад учил немецкий. Возможно не правильно понял.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
14.06.2013, 23:19
Вполне ясно расписано. Забираю в раздел Batch.

Slamzor, выложите саму программу в архиве и файл замен, составим Вам скрипт.
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
15.06.2013, 00:01  [ТС]
Dragokas, В самой программе были примеры, я их просто в саму папку повыше вытащил.
Сам использую ексель.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.06.2013, 00:14
Ух, сколько всего интересного, а самого ЕХЕ-шника программы то и нет
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.06.2013, 15:45
Slamzor, у меня антивирус грохнул без предупреждения.
https://www.virustotal.com/ru/... 371296555/
http://www.securelist.com/ru/d... otector.bc
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
15.06.2013, 15:57  [ТС]
Dragokas, Вполне может быть. Она с лекарством была, простите, что не предупредил. Прилагаю триал версию на 30 дней.
Вложения
Тип файла: 7z wordpipe2 (1).7z (7.90 Мб, 9 просмотров)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
20.06.2013, 17:38
Собственно весь процесс подстановки имени файла и перечня замен происходит не в командной строке, а в файле задания .wpp

Вот он:
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?xml version="1.0" encoding="UTF-8"?>
<!--WordPipe 5.6.5 from http://www.DataMystic.com-->
<settings>
  <AllowAlerts>False</AllowAlerts>
  <StartFolder>D:\</StartFolder>
  <FileType>*.doc*;*.dot;*.rtf</FileType>
  <IncludeSubdirs>True</IncludeSubdirs>
  <RetainFileDates>False</RetainFileDates>
  <Password/>
  <UnprotectPassword/>
  <CheckFromFile>False</CheckFromFile>
  <FromFilename/>
  <ListFilename/>
  <ScanForFiles>True</ScanForFiles>
  <Backup>False</Backup>
  <ISOName/>
  <ISOIncrement>0.1</ISOIncrement>
  <RestartDocCount>1000</RestartDocCount>
  <AppVersion>0</AppVersion>
  <AutoKillSeconds>0</AutoKillSeconds>
  <ExeLocation/>
  <ListOfFiles/>
  <FileMode>0</FileMode>
  <Ranges>0</Ranges>
  <MatchCase>False</MatchCase>
  <WholeWord>False</WholeWord>
  <LongestFirst>False</LongestFirst>
  <Prompt>False</Prompt>
  <MatchByte>False</MatchByte>
  <ReadOnly>False</ReadOnly>
  <Highlight>-1</Highlight>
  <TextPipeFilter/>
  <FieldCodes>False</FieldCodes>
  <FirstOnly>False</FirstOnly>
  <ForceSave>True</ForceSave>
  <UpdateFieldCodes>True</UpdateFieldCodes>
  <SearchLine>
    <FindWhat>-2007</FindWhat>
    <ReplaceWith>-2008</ReplaceWith>
    <Ranges>7</Ranges>
    <MatchCase>False</MatchCase>
    <WholeWord>False</WholeWord>
    <SearchType>0</SearchType>
    <Prompt>False</Prompt>
    <MatchByte>False</MatchByte>
    <Highlight>0</Highlight>
    <FieldCodes>True</FieldCodes>
    <FirstOnly>True</FirstOnly>
  </SearchLine>
  <SearchLine>
    <FindWhat>,2007</FindWhat>
    <ReplaceWith>,2008</ReplaceWith>
    <Ranges>7</Ranges>
    <MatchCase>False</MatchCase>
    <WholeWord>False</WholeWord>
    <SearchType>0</SearchType>
    <Prompt>False</Prompt>
    <MatchByte>False</MatchByte>
    <Highlight>0</Highlight>
    <FieldCodes>True</FieldCodes>
    <FirstOnly>True</FirstOnly>
  </SearchLine>
</settings>


А теперь обратите внимание на выделенные строки:

Кликните здесь для просмотра всего текста
<?xml version="1.0" encoding="UTF-8"?>
<!--WordPipe 5.6.5 from http://www.DataMystic.com-->
<settings>
<AllowAlerts>False</AllowAlerts>
<StartFolder>D:\</StartFolder> - где искать файлы для замены
<FileType>*.doc*;*.dot;*.rtf</FileType> - маска для файлов (можно указать 1 конкретный)
<IncludeSubdirs>True</IncludeSubdirs> - искать ли в подпапках
<RetainFileDates>False</RetainFileDates>
<Password/>
<UnprotectPassword/>
<CheckFromFile>False</CheckFromFile>
<FromFilename/>
<ListFilename/>
<ScanForFiles>True</ScanForFiles>
<Backup>False</Backup>
<ISOName/>
<ISOIncrement>0.1</ISOIncrement>
<RestartDocCount>1000</RestartDocCount>
<AppVersion>0</AppVersion>
<AutoKillSeconds>0</AutoKillSeconds>
<ExeLocation/>
<ListOfFiles/>
<FileMode>0</FileMode>
<Ranges>0</Ranges>
<MatchCase>False</MatchCase>
<WholeWord>False</WholeWord>
<LongestFirst>False</LongestFirst>
<Prompt>False</Prompt>
<MatchByte>False</MatchByte>
<ReadOnly>False</ReadOnly>
<Highlight>-1</Highlight>
<TextPipeFilter/>
<FieldCodes>False</FieldCodes>
<FirstOnly>False</FirstOnly>
<ForceSave>True</ForceSave>
<UpdateFieldCodes>True</UpdateFieldCodes>
<SearchLine>
<FindWhat>-2007</FindWhat> - что заменять
<ReplaceWith>-2008</ReplaceWith> - чем заменять
<Ranges>7</Ranges> - вероятно кол-во замен (нужно см. в доках)
<MatchCase>False</MatchCase>
<WholeWord>False</WholeWord>
<SearchType>0</SearchType>
<Prompt>False</Prompt>
<MatchByte>False</MatchByte>
<Highlight>0</Highlight>
<FieldCodes>True</FieldCodes>
<FirstOnly>True</FirstOnly>
</SearchLine>
<SearchLine>
<FindWhat>,2007</FindWhat>
<ReplaceWith>,2008</ReplaceWith>
<Ranges>7</Ranges>
<MatchCase>False</MatchCase>
<WholeWord>False</WholeWord>
<SearchType>0</SearchType>
<Prompt>False</Prompt>
<MatchByte>False</MatchByte>
<Highlight>0</Highlight>
<FieldCodes>True</FieldCodes>
<FirstOnly>True</FirstOnly>
</SearchLine>
</settings>


Ком. строкой можно автоматизировать заполнение данного файла задания с последующим запуском его на выполнение.
Главное четко знать с какой целью это будет использоваться.

Т.к. согласно Вашему заданию: 3 файла и 3 разные замены. Код вообще не нужен. Нужно только 3 разных конфиг-файла. И ярлыки к ним по типу:
Bash
1
EXE-файл ключи Файл задания
А теперь вопрос: какая же все-таки главная цель?
Автоматизации конкретно чего Вы планируете добиться?
1
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
20.06.2013, 18:07  [ТС]
Задача вот какая - есть несколько десятков(сотен) файлов (*.docx), размноженных с шаблона - как с помощью клише. У меня в этих файлах на определенных местах должны быть свои названия документов (титульный лист, колонтитулы и т.п. и т.д.). Вот я и хочу в телАх документов прописать эти названия с помощью замен.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
20.06.2013, 19:13
А дальше - в чем именно у Вас еще сложности? Думаю, про приведенному примеру Вы можете самостоятельно подставить нужные параметры и запустить команду замен:

Bash
1
"C:\Program files\WordPipe\wordpipe.exe" "/f=путь к файлу заданий\replaces.wpp" /G /Q
Спрашивайте, что неясно.
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
20.06.2013, 20:28  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
<Ranges>7</Ranges> - вероятно кол-во замен (нужно см. в доках)
это похоже "с учетом регистра".
Непонятно вот что, я должен создать (если у меня 50 файлов) 50 файлов-замен *.wpp, в которых будет указан путь к одному из 50 файлов? Или я что то не понимаю ....

Добавлено через 10 минут
Если разобраться на примере не 50ти а 3х файлов:
есть три файла A.docx B.docx C.docx. В каждом есть текст "0"
Мне надо в А заменить "0 на 1" в B "0 на 2" в С "0 на 3".
Если я создам один Wpp, в котором укажу первую замену, он во всех файлах заменит 0 на 1
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
20.06.2013, 23:45
Цитата Сообщение от Slamzor Посмотреть сообщение
Если я создам один Wpp, в котором укажу первую замену, он во всех файлах заменит 0 на 1
Да, но Вы же по какому-то критерию определяете в каком из них нужно делать замену 0 на 1, а в каких 0 на 2.

Цитата Сообщение от Slamzor Посмотреть сообщение
это похоже "с учетом регистра".
Нет, учет регистра - это Case sensitivity

Добавлено через 2 минуты
Задача сводится к созданию групп wpp-фалов заданий. Сколько различных видов замен, столько и файлов. Причем 2 и более разные виды замен для 1 группы файлов можно создать и в 1 файле-задании.
Каждый файл делает определенную замену.
А к каким файлам применять - тут уже жду от Вас ответа.
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
21.06.2013, 00:42  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Да, но Вы же по какому-то критерию определяете в каком из них нужно делать замену 0 на 1, а в каких 0 на 2.
Критерий есть. В том то и дело, чтобы провести замену мне приходится для каждого файла проводить очередной пуск.
Я могу задать папку для замен, где все файлы лежат или список заложить, где все файлы отображены.
Но я не могу задать (или не понимаю) как заставить произвести замену в каждом файле на свое значение. В программе нет выбора в каком файле что поменять.
Вот пример с тремя файлами с одним текстом "0" нуль:
Могу ли я с помощью одного wpp заменить 0 на разные значения из списка(или некого перечисления в самом же wpp) во всех файлах ?
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
21.06.2013, 00:44  [ТС]
Пример
Вложения
Тип файла: rar doc.rar (21.9 Кб, 11 просмотров)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.06.2013, 02:47
В примере wpp выше вместо
Code
1
<StartFolder>D:\</StartFolder>
задаем нужную папку.
Цитата Сообщение от Slamzor Посмотреть сообщение
Критерий есть.
Давайте.

Если у Вас есть список файлов для каждой группы различных замен. Можно сочинить батник для подстановки этих имен файлов в wpp.
А лучше просто подставить список файлов прямо сюда:
Code
1
<FileType>*.doc*;*.dot;*.rtf</FileType>
например так:
Code
1
<FileType>file1.doc;file2.doc;file3.doc</FileType>
Добавлено через 1 минуту
А вот этот тег, если не ошибаюсь, специально предназначен для списка файлов:

Code
1
2
3
4
5
<ListFilename>
file1.doc
file2.doc
file3.doc
</ListFilename>
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
21.06.2013, 07:31  [ТС]
Проблема не в списке с подстановкой файлов, а в списке с заменой. В примере test1.doc вместо "0" должно быть "1", test2.doc вместо "0" должно быть "2", test3.doc вместо "0" должно быть "3".
Если таких файлов не три а 50, то необходимо провести 50 пусков для каждого файла в отдельности, так как "0", каждый раз, необходимо заменить на различные значения.
Поэтому я и спросил как можно сделать так, чтобы программу заставить работать по следующему принципу - взять первый файл и осуществить подстановку значения из списка из первой строки и так далее.

Нужен некий стоп в коде, что ли.
Test1.doc - заменить 0 на 1. СТОП - следующая пара значений, эти значения из списка исключить.
Test2.doc - заменить 0 на 2. Стоп - следующая пара и так далее ...

Добавлено через 10 минут
Не исключить, а перейти к следующему файлу...

Список замен или эти строки:

<FindWhat>-2007</FindWhat> - всегда одно значение ("0")
<ReplaceWith>-2008</ReplaceWith> - чем заменять "1", "2", "3" - последовательно для каждого файла в отдельности.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.06.2013, 14:35
Т.е. на каждый файл не более 1 замены?

Добавлено через 10 минут
Code
1
<FirstOnly>True</FirstOnly>
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
21.06.2013, 16:31  [ТС]
Да можно не более одной замены, но First only - true не подходит, это значит в каждом файле заменить первое найденное и дальше не искать, это же совсем другое. Будет просмотрен каждый перечисленный файл и заменено первое значение в каждом. В том и дело что надо скриптом или командами заставить осуществить перебор файлов и подстановку замен в каждый файл свою
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.06.2013, 16:31
Помогаю со студенческими работами здесь

Автоматизация работы магазина
Вот есть программа, всё в ней работает. Есть там такая функция: &quot;Выручка за текущий месяц&quot;, и вот текущим в данной программе задан 01...

Автоматизация работы с сайтами
Здравствуйте. По работе мне приходится выполнять большое количество однотипных действий, размещать на сайтах текст и фотографии (не спам и...

Автоматизация работы ресторана
Создаю приложение автоматизации работы ресторана. Интересует вопрос, где хранить сформированный заказ, который ещё не оплачен? Помогите,...

Автоматизация работы Windows
Добрый день. Мне необходимо провести некоторую автоматизацию в работе windows: нужно, что бы по расписанию, запускалась определённая...

Автоматизация работы с флеш
Есть одно флеш приложение и мне нужно автоматизировать работу с ним. Проблема в том, что я не знаю AS (совсем). Сейчас учусь на первом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru