ЗАКАЗ СКРИПТОВ
|
|
Andrey_A | Дата: Среда, 29.02.2012, 23:46 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
ЗАКАЗ СКРИПТОВ
В этой теме Вы можете высказывать идеи о написании того или иного скрипта. Если Вы столкнулись с монотонной задачей, которую можно автоматизировать и не знаете как это сделать, Вы можете описать свою проблему здесь и возможно найдутся те, кто подскажет как её решить. Большая просьба чётко описывать задачу, от этого будет зависеть качество её решений
Готовые решения будут открепляться в отдельные темы
[info] Тема по большому счёту закрыта, т.к. я больше не пишу отдельных скриптов... Большинство скриптов для Total Commander вошли в функционал в утилиты TCIMG
[/info]
|
|
| |
Andrey_A | Дата: Воскресенье, 09.03.2014, 00:53 | Сообщение № 241 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата Diniska как то копировать код Если не в буфер, то... Как-то копировать - это как? Куда копировать? Откуда? Что значит копировать? InputBox - получает во внутрь скрипта данные, а дальше... если не в буфер))) в файл...
------------------- Если vbs начали изучать недавно..то переходите сразу на AU3 или AutoHotkey или подобные есть встроенный буфер и как сказано без буфера есть возможность вводить текст куда надо
----------------------------- Добавлено: -------------- Не подумайте, что я общаюсь сам с собой. В теме заказа скриптов написано: "Большая просьба чётко описывать задачу, от этого будет зависеть качество её решений." Пользователь Diniska просто удалил свои сообщения, так и не дав чёткой задачи... мне так и непонятно что он хотел. Наверно обиделся)))
|
|
| |
SaNF | Дата: Пятница, 18.04.2014, 15:14 | Сообщение № 242 |
Рядовой
На сайте с: 18.04.2014
Сообщений: 2
|
Помогите пожалуйста с VBS скриптом
Код 'Очищает содержимое папки "Обмен" (файлы и директории внутри)
Set fso=CreateObject("Scripting.FileSystemObject") CleanPath="E:\документы\_Обмен"
For Each file In fso.GetFolder(CleanPath).Files file.attributes = file.attributes And Not 1 file.delete Next Set fso = CreateObject("Scripting.FileSystemObject") Set oFolder = fso.GetFolder("E:\документы\_Обмен")
arrFolders = Array() For Each oFolder In oFolder.SubFolders If Not LCase(oFolder.Name) = "foldera" _ And Not LCase(oFolder.Name) = "folderb" _ And Not LCase(oFolder.Name) = "folderc" Then intCount = UBound(arrFolders) + 1 ReDim Preserve arrFolders(intCount) arrFolders(intCount) = oFolder.Path End If Next
For n = 0 To UBound(arrFolders) fso.DeleteFolder arrFolders(n), True Next
Как добавить файл исключение "E:\документы\_Обмен\_Обмен Москва.ico"
|
|
| |
Andrey_A | Дата: Пятница, 18.04.2014, 22:38 | Сообщение № 243 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата SaNF ( ) Как добавить файл исключение "E:\документы\_Обмен\_Обмен Москва.ico" Код 'Очищает содержимое папки "Обмен" (файлы и директории внутри)
Set FSO=CreateObject("Scripting.FileSystemObject") CleanPath="E:\документы\_Обмен" FileIgnore=CleanPath&"\_Обмен Москва.ico"
For Each File In FSO.GetFolder(CleanPath).Files If File <> FileIgnore Then File.Attributes = File.Attributes And Not 1 File.Delete End If Next Set oFolder = FSO.GetFolder(CleanPath)
arrFolders = Array() For Each oFolder In oFolder.SubFolders If Not LCase(oFolder.Name) = "foldera" And Not LCase(oFolder.Name) = "folderb" And Not LCase(oFolder.Name) = "folderc" Then intCount = UBound(arrFolders) + 1 ReDim Preserve arrFolders(intCount) arrFolders(intCount) = oFolder.Path End If Next
For n = 0 To UBound(arrFolders) FSO.DeleteFolder arrFolders(n), True Next
|
|
| |
Gibloid | Дата: Воскресенье, 20.04.2014, 21:27 | Сообщение № 244 |
Рядовой
На сайте с: 20.04.2014
Город: Самара
Сообщений: 4
|
Доброго времени! Очень нужен скрипт, умеющий из текстового файла А в текстовый файл Б копировать часть текста. Эта часть которую надо копировать, начинается со слова РАСПОРЯЖЕНИЕ и заканчивается словом Исполнитель, внизу как раз кусок, который надо копировать. Это распоряжение повторяется несколько раз в одном файле. Спасибо.
Дата обработки **.**.20**
М.П.
РАСПОРЯЖЕНИЕ О ПРИОСТАНОВЛЕНИИ ВЫПЛАТЫ ПЕНСИИ от 10.04.2014 Управление ПФР в *** Гр.К*** А*** И*** Страховое свидетельство обязательного пенсионного страхования № ***-***-***-** Дело № ****** В соответствии с п.1 ст.21 Федерального закона О трудовых пенсиях в Российской Федерации № 173-ФЗ от 17 декабря 2001 г. приостановить выплату пенсии Вид трудовой пенсии По инвалидности (труд) 3 группа инвалидности в размере **** руб. ** коп. в том числе : фиксированный базовый размер **** руб. ** коп. страховая часть **** руб. ** коп. с **.**.20** М.П. Начальник управления
Исполнитель **.**.20** Центр по выплате пенсий ПФР в ******* области ( ***********) Страховой номер ***-***-***-** Номер дела ***,получатель Е***** П**** Н****** способ выплаты Ведомость код 312 дата выплаты 14 Доставочный участок - 1
|
|
| |
Andrey_A | Дата: Воскресенье, 20.04.2014, 22:17 | Сообщение № 245 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата Gibloid ( ) умеющий из текстового файла А в текстовый файл Б копировать часть текста Есть несколько вопросов: 1. Можно получить текст "РАСПОРЯЖЕНИЕ ... Исполнитель" , а куда вставлять в файл Б? В конец файла Б? В начало...? Вместо чего-то...? ...
2. Если может быть несколько кусков "РАСПОРЯЖЕНИЕ ... Исполнитель", то какой именно кусок нужен?
3. В какой кодировке текстовые файлы? -----------
Как и при предыдущих заявках лучше всего прислать несколько файлов для теста: файл откуда копировать и куда (с начальным и конечным результатом)
|
|
| |
Gibloid | Дата: Воскресенье, 20.04.2014, 22:26 | Сообщение № 246 |
Рядовой
На сайте с: 20.04.2014
Город: Самара
Сообщений: 4
|
Андрей, 1. файл Б изначально пуст, туда надо вставить все распоряжения, встречающиеся в файле А, т.е. чтобы в файле Б не было другого текста, кроме распоряжений. 2. распоряжений много, и все они должны быть в файле Б. 3. кодировка MS-DOS.
|
|
| |
Andrey_A | Дата: Воскресенье, 20.04.2014, 22:29 | Сообщение № 247 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Gibloid, Вышлите в архиве в личку подобный файл A - это ускорит процесс
и какой разделитель должен быть между текстом "РАСПОРЯЖЕНИЕ ... Исполнитель"(1) , "РАСПОРЯЖЕНИЕ ... Исполнитель"(2) ... "РАСПОРЯЖЕНИЕ ... Исполнитель"(N)
|
|
| |
Gibloid | Дата: Воскресенье, 20.04.2014, 22:54 | Сообщение № 248 |
Рядовой
На сайте с: 20.04.2014
Город: Самара
Сообщений: 4
|
разделитель несколько пустых строк, например 5
|
|
| |
Andrey_A | Дата: Воскресенье, 20.04.2014, 23:50 | Сообщение № 249 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Gibloid, попробуйте ExtractionText.vbs - Извлекает из текстового файла А все фразы по заданному началу и окончанию и записывает в файл B
Дополнительное обсуждение в теме скрипта
--------- Поздно обратил внимание на кодировку... и присланный файл увидел позже... этот скрипт для Ansi
Слова "РАСПОРЯЖЕНИЕ" и "Исполнитель" идут не сначала строки... и кодировку MS-DOS проще побороть через Autoit
-----------------------------------
А если есть возможность получать этот файл в ANSI-1251 (или перекодировать), то и мудрить не придётся. Через AkelPad это легко делается или другими средствами
|
|
| |
Gibloid | Дата: Понедельник, 21.04.2014, 23:30 | Сообщение № 250 |
Рядовой
На сайте с: 20.04.2014
Город: Самара
Сообщений: 4
|
Спасибо огромное! Всё работает, Вы даже не представляете, как помогли, автоматизировав операции!
|
|
| |
SaNF | Дата: Вторник, 22.04.2014, 18:49 | Сообщение № 251 |
Рядовой
На сайте с: 18.04.2014
Сообщений: 2
|
Андрей спасибо большое, скрипт отрабатывает но выдает ошибку, ругается на строку File.Delete
Цитата Andrey_A ( ) 'Очищает содержимое папки "Обмен" (файлы и директории внутри)
Set FSO=CreateObject("Scripting.FileSystemObject") CleanPath="E:\документы\_Обмен" FileIgnore=CleanPath&"\_Обмен Москва.ico"
For Each File In FSO.GetFolder(CleanPath).Files If File <> FileIgnore Then File.Attributes = File.Attributes And Not 1 File.Delete End If Next Set oFolder = FSO.GetFolder(CleanPath)
arrFolders = Array() For Each oFolder In oFolder.SubFolders If Not LCase(oFolder.Name) = "foldera" And Not LCase(oFolder.Name) = "folderb" And Not LCase(oFolder.Name) = "folderc" Then intCount = UBound(arrFolders) + 1 ReDim Preserve arrFolders(intCount) arrFolders(intCount) = oFolder.Path End If Next
For n = 0 To UBound(arrFolders) FSO.DeleteFolder arrFolders(n), True Next
|
|
| |
Andrey_A | Дата: Среда, 23.04.2014, 00:03 | Сообщение № 252 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата SaNF ( ) выдает ошибку, ругается на строку File.Delete Странно у меня такого нет, да и на что там ругаться... Попробуйте прописать перед строкой
Код ... File.Attributes = File.Attributes And Not 1 On Error Resume Next File.Delete ...
|
|
| |
urievich | Дата: Понедельник, 26.05.2014, 17:25 | Сообщение № 253 |
Рядовой
На сайте с: 26.05.2014
Город: Москва
Сообщений: 4
|
Здравствуйте не могли бы подсказать всю голову сломал уже! Нужен скрипт который принимает в виде аргументов папку исходную и папку целевую, воссоздающий дерево подпапок исходной папки внутри целевой, но не копирующий файлы! вот что есть у меня Код papka = "c:\temp\" Dim FSO, TextStream, Folder, SubFolder, File, FilePath Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder1 = FSO.GetFolder(papka) Folder2 = "c:\temp\temp1\" RecursiveFolderScan papka Msgbox "OK"
Sub RecursiveFolderScan(FolderPath) 'Получаем объектную модель текущего каталога Set Folder = FSO.GetFolder(FolderPath) 'Перебираем все подкаталоги в каталоге For Each SubFolder in Folder.SubFolders folderpath=FSO.BuildPath(Folder2,SubFolder.Name) FSO.CreateFolder folderpath
RecursiveFolderScan(SubFolder.Path)
Next End Sub Но папки исходная и целевая задаются жестко, а нужно в виде аргументов их передать! [ps]Не силён в vbs поэтому не получается везде прёт несовпадение типов итд Помогите если можете![/ps]
|
|
| |
Andrey_A | Дата: Понедельник, 26.05.2014, 17:58 | Сообщение № 254 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата urievich ( ) Нужен скрипт который принимает в виде аргументов папку исходную и папку целевую Не до конца понял вопрос, вы не можете передать в скрипт пути из Total Commander?
если да то в скрипте пишем:
Код Cnt = WScript.Arguments.Count If Cnt > 0 Then Parameter1 = WScript.Arguments(0) If Cnt > 1 Then Parameter2 = WScript.Arguments(1)
В параметрах в кнопке прописать "%p %t" пример: Код TOTALCMD#BAR#DATA "Путь к скрипту\Scripts.vbs" %p %t %COMMANDER_PATH%\TOTALCMD.EXE,1 Передача в скрипт пути активной и целевой панели
-1
|
|
| |
urievich | Дата: Понедельник, 26.05.2014, 18:08 | Сообщение № 255 |
Рядовой
На сайте с: 26.05.2014
Город: Москва
Сообщений: 4
|
Если честно то тотал и не нужен через WSH надо) я в консоле запускаю скрипт и указываю параметры через пробел (6.vsb c:/temp c:/temp/temp1), но дело в том что не пойму как присвоить переменным papka и folder2 эти параметры, чтоб при запуске скрипта этим переменным передавались (аргументы скрипта)
|
|
| |