[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Andrey_A, ХарВик, chip642  
ЗАКАЗ СКРИПТОВ
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
Награды: 0
Репутация: 0
Помогите пожалуйста с 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
Награды: 0
Репутация: 0
Доброго времени! Очень нужен скрипт, умеющий из текстового файла А в текстовый файл Б копировать часть текста. Эта часть которую надо копировать, начинается со слова РАСПОРЯЖЕНИЕ и заканчивается словом Исполнитель, внизу как раз кусок, который надо копировать. Это распоряжение повторяется несколько раз в одном файле. Спасибо.

Дата обработки **.**.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
Награды: 0
Репутация: 0
Андрей, 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
Награды: 0
Репутация: 0
разделитель несколько пустых строк, например 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
Награды: 0
Репутация: 0
Спасибо огромное! Всё работает, Вы даже не представляете, как помогли, автоматизировав операции! up
 
SaNFДата: Вторник, 22.04.2014, 18:49 | Сообщение № 251
Рядовой

На сайте с: 18.04.2014
Сообщений: 2
Награды: 0
Репутация: 0
Андрей спасибо большое, скрипт отрабатывает но выдает ошибку, ругается на строку 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

Странно у меня такого нет, да и на что там ругаться...
Попробуйте прописать перед строкой

Код
On Error Resume Next


Код
...
      File.Attributes = File.Attributes And Not 1
      On Error Resume Next
      File.Delete
...


 
urievichДата: Понедельник, 26.05.2014, 17:25 | Сообщение № 253
Рядовой

На сайте с: 26.05.2014
Город: Москва
Сообщений: 4
Награды: 0
Репутация: 0
Здравствуйте не могли бы подсказать всю голову сломал уже!
Нужен скрипт который принимает в виде аргументов папку исходную и папку целевую, воссоздающий дерево подпапок исходной папки внутри целевой, но не копирующий файлы!
вот что есть у меня
Код

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
Награды: 0
Репутация: 0
Если честно то тотал и не нужен через WSH надо) я в консоле запускаю скрипт и указываю параметры через пробел (6.vsb c:/temp c:/temp/temp1), но дело в том что не пойму как присвоить переменным papka и folder2 эти параметры, чтоб при запуске скрипта этим переменным передавались (аргументы скрипта)
 
Поиск:

Интеллектуальные права и отказ от ответственности