|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] переименования файлов |
|
CMD/BAT - [решено] переименования файлов
|
Старожил Сообщения: 300 |
Профиль | Отправить PM | Цитировать Привет всем! помогите со скриптом, есть n-ое кол-во файлов docx и txt файл (в нем список имен) нужен скрипт которые будет брать имена с txt файла и переименовывать docx файлы согласно списка в txt файле
|
|
Отправлено: 10:24, 07-12-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mcintosh55:
Цитата mcintosh55:
на: |
||
Отправлено: 23:20, 07-12-2017 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 300
|
Профиль | Отправить PM | Цитировать ISKA, большое спасибо!!!
скрипт работает office 2003/2007/2013/2016 Скрытый текст
<job> <object ProgId = "Word.Application" id = "objWord" events = "true" /> <script language = "VBScript"> Option Explicit Const wdFormLetters = 0 Const wdSendToNewDocument = 0 Const wdDefaultFirstRecord = 1 Const wdDefaultLastRecord = -16 Const wdNextRecord = -2 Dim objDocument Dim objCurrResultDocument Dim i Dim strDocumentName objWord.Visible = True Set objDocument = objWord.Documents.Open("C:\Мои проекты\0136\order.doc") With objDocument.MailMerge .MainDocumentType = wdFormLetters .OpenDataSource _ "C:\Мои проекты\0136\base.xls", _ ,,,,,,,,,, _ "Provider=Microsoft.Jet.OLEDB.4.0;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;Jet OLEDB:Engine Type=35;""", _ "SELECT * FROM `Лист1$`" .Destination = wdSendToNewDocument .SuppressBlankLines = True For i = wdDefaultFirstRecord To .DataSource.RecordCount .DataSource.FirstRecord = .DataSource.ActiveRecord .DataSource.LastRecord = .DataSource.ActiveRecord Set objCurrResultDocument = Nothing strDocumentName = .DataSource.DataFields.Item("SNP").Value .Execute False .DataSource.ActiveRecord = wdNextRecord Do WScript.Sleep 100 Loop Until Not objCurrResultDocument Is Nothing objCurrResultDocument.Close Next End With objDocument.Close False WScript.DisconnectObject objWord objWord.Quit WScript.Quit 0 Sub objWord_MailMergeAfterMerge(ByVal objResultDocument, ByVal objMainDocument) objResultDocument.SaveAs "C:\Мои проекты\0136\" & strDocumentName & ".doc" Set objCurrResultDocument = objResultDocument rem WScript.Echo "Mail Merge Complete: " & objResultDocument.FullName End Sub </script> </job> |
Отправлено: 23:56, 07-12-2017 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать mcintosh55, так… Это уже хорошо. Теперь двигаемся дальше.
1. Как я понимаю, Вам сие придётся проделывать достаточно регулярно, так? Как было бы Вам удобнее и проще работать? 2. Существует вполне ненулевая вероятность, что в одном списке окажутся разные люди с полным совпадением ФИО (или даже один и тот же, но с разными постановлениями). Пока это даже никак не проверяется — файл с именем, стоящим ниже по списку просто тупо затрёт ранее созданный файл. Что можно придумать, исходя из исходных данных — что там есть уникального в списке (скажем, тот же номер постановления, нет? |
Отправлено: 00:23, 08-12-2017 | #23 |
Старожил Сообщения: 300
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Я думаю можно по пробовать фио+столбик personal account это число уникальное что типа такого, но у меня не получилось вываливает в ошибку |
|
Последний раз редактировалось mcintosh55, 08-12-2017 в 08:43. Отправлено: 02:03, 08-12-2017 | #24 |
Старожил Сообщения: 300
|
Профиль | Отправить PM | Цитировать Сегодня протестировал скрипт, почему то рандомно он останавливается т.е. может создать новых файлов из всего списка а может и остановиться 10 или 20 или 24 файлов каждый раз по разному
|
Отправлено: 14:09, 08-12-2017 | #25 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mcintosh55:
strDocumentName = .DataSource.DataFields.Item("SNP").Value & "_" & .DataSource.DataFields.Item("personal account").Value Цитата mcintosh55:
|
||
Отправлено: 15:03, 08-12-2017 | #26 |
Старожил Сообщения: 300
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Последний раз редактировалось mcintosh55, 08-12-2017 в 15:19. Отправлено: 15:09, 08-12-2017 | #27 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать mcintosh55, ну, с окнами там работы никакой не ведётся по причине отсутствия такового кода. То, что окна новосозданных документов Word мельтешат в процессе — так я пока специально оставил окно приложения Microsoft Word видимым на случай возникновения ошибок.
mcintosh55, мне вот ещё что подумалось: Вы исполняете .wsf под консольным cscript.exe или под GUI'шным wscript.exe? Я-то всегда работаю под консолью, и у меня именно cscript.exe задан исполнителем (в противовес wscript.exe, используемому по умолчанию). Так вот, под wscript.exe от команд WScript.Echo будут появляться не сообщения в консоли, а окна сообщений, и после появления такого окна сообщения скрипт действительно будет останавливаться до тех пор, пока будет это окно сообщения не будет закрыто. |
Отправлено: 15:36, 08-12-2017 | #28 |
Старожил Сообщения: 300
|
Профиль | Отправить PM | Цитировать strDocumentName = .DataSource.DataFields.Item("SNP").Value & "_" & .DataSource.DataFields.Item("personal account").Value strDocumentName = .DataSource.DataFields.Item("SNP").Value & "_" & .DataSource.DataFields.Item("personal_account").Value через cscript.exe все отлично отрабатывает |
Последний раз редактировалось mcintosh55, 08-12-2017 в 15:54. Отправлено: 15:46, 08-12-2017 | #29 |
Старожил Сообщения: 300
|
Профиль | Отправить PM | Цитировать Большое спасибо, Iska!!! Все отлично работает, то что окна открываются закрываются это не страшно.
|
Отправлено: 16:02, 08-12-2017 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Батник для переименования файлов | Школьник 5 | Скриптовые языки администрирования Windows | 21 | 30-11-2019 21:58 | |
VBS/WSH/JS - VBS Скрипт переименования файлов | wwtf | Скриптовые языки администрирования Windows | 6 | 26-04-2017 14:00 | |
CMD/BAT - [решено] батник для переименования файлов | Pumpik | Скриптовые языки администрирования Windows | 5 | 01-02-2014 20:12 | |
CMD/BAT - [решено] не работает счетчик переименования файлов | Xeruvim4ik | Скриптовые языки администрирования Windows | 13 | 15-04-2013 21:57 | |
Скрипт автоматического переименования файлов mp3 | Ламер | Программирование в *nix | 2 | 02-03-2011 19:59 |
|