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

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

13.06.2013, 22:55. Показов 4452. Ответов 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
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.06.2013, 22:31
Студворк — интернет-сервис помощи студентам
<censored>

У Вас 3 вида замен (с 0 на ...).
Создаете 3 wpp файла.
В 1-м файле пишите:
Code
1
2
3
4
5
6
<ListFilename>
Список файлов набора1
</ListFilename>
...
<FindWhat>0</FindWhat>
<ReplaceWith>1</ReplaceWith>
В 2-м файле пишите:
Code
1
2
3
4
5
6
<ListFilename>
Список файлов набора2
</ListFilename>
...
<FindWhat>0</FindWhat>
<ReplaceWith>2</ReplaceWith>
и т.д.

Добавлено через 4 часа 46 минут
Извини, снова напился.

Теперь понял задачу.

Получается у Вас есть 1 шаблон и нужно сделать из него несколько разных документов, идя по списку замен.

К сожалению, у Вашей кряканной версии ничего хорошего нет. Она не понимает командной строки.
Оригинальная - может, но она не принимает ключ /Q, и поэтому не закрывает Word, да еще и показывает Evalution-окно.

Сейчас попробую сделать на макросах.
0
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
21.06.2013, 23:32  [ТС]
@Dragokas, возникла одна идея, правда не знаю на сколько она реализуема. Идея следующая - воспользоваться буфером обмена. в строке поиск - будет некое значение, оно везде во всех файлах одно, а в строке замена "^c", идея такая, чтобы перед заменой каждого файла, буфер заполнять последовательно из списка.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.06.2013, 23:50
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Уфф, никогда под Word макросы не писал.

Вообщем вот:
скачаете файл. Откроете, левый Alt + F11. В левом окне выбрать Module -> NewMacros.
Отредактировать первые две строки с константами:

Кликните здесь для просмотра всего текста
Visual Basic
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
64
65
66
67
68
Option Explicit
 
'// Шаблон документа
Const Template As String = "l:\VM\Shared\Replace_Test\bin\Template1.doc"
'// Куда размножать
Const Destination As String = "l:\VM\Shared\Replace_Test\bin\Docs"
 
Sub Replacer()
    Dim oDoc As Document
    Dim rText As Range
    Dim aDict: aDict = ReadTable()
    
    Dim n As Long
    
    For n = 1 To UBound(aDict, 1)
        'expression.Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
        'Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible, OpenConflictDocument, OpenAndRepair  , DocumentDirection, NoEncodingDialog)
        'Set oDoc = Documents.Open(Template, False, True, False, "", "", True, "", "", , True, False, False, wdLeftToRight, True)
        Set oDoc = Documents.Open(FileName:=Template, ReadOnly:=True, Visible:=False)
        'oDoc.Visible = True
    
        Set rText = oDoc.Range
 
        With rText.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Forward = True
            .Wrap = wdFindStop
            .MatchWholeWord = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
            .Format = True
            .MatchCase = True
 
            .Text = aDict(n, 1)
            .Replacement.Text = aDict(n, 2)
            .Execute Replace:=wdReplaceAll
        End With
        
        oDoc.SaveAs FileName:=Destination & "\Doc" & n & ".doc"
        oDoc.Close
        Set rText = Nothing
        Set oDoc = Nothing
    Next
    
    MsgBox "OK."
End Sub
 
Private Function ReadTable() As Variant '// Переписываем таблицу в массив
    Dim tbl() As String
    Dim R As Long, C As Long, R_Total As Long, C_Total As Long
    
    With ActiveDocument.Tables(1)
        R_Total = .Rows.Count
        C_Total = .Columns.Count
        ReDim tbl(R_Total - 1, C_Total)
        For R = 2 To R_Total '// без заголовка
            For C = 1 To C_Total
                With .Cell(R, C).Range
                    .MoveEnd Unit:=wdCharacter, Count:=-1
                    tbl(R - 1, C) = .Text
                End With
            Next
        Next
    End With
    ReadTable = tbl()
End Function
Вложения
Тип файла: rar Replacer.rar (7.7 Кб, 6 просмотров)
1
361 / 38 / 2
Регистрация: 16.03.2013
Сообщений: 196
22.06.2013, 00:47  [ТС]
@Dragokas, Супер! Затупил с 2007 word. Откопал 2003 portable и в нем с ходу завелось. Про работоспособность в 2010 и 2007 отпишусь позже.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.06.2013, 01:32
Цитата Сообщение от Slamzor Посмотреть сообщение
Затупил с 2007 word.
Именно заглючил?

Ну да, макросы в 2007 работают почти как валянок, что Excel, что Word. В 2010 есть надежда, что может заработать лучше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2013, 01:32

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru