Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript

Модерирует : ShIvADeSt

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

   

SerBUser

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Опять вопрос по работе с AD. В интерфейсе IADsGroup есть метод IsMember() — этот метод позволяет проверить, является ли объект Active Directory членом данной группы и в зависимости от этого возвращает True или False. Учитывается только непосредственное членство: если, например, объект пользователя входит в глобальную группу, которая в свою очередь входит в локальную, то проверка членства для пользователя в локальной группе вернет False. Проверка может быть произведена только для объектов того же домена. Точно так же, как и метод Add(), метод IsMember() принимает в качестве параметра путь AdsPath или SID объекта, членство которого в группе проверяется (для провайдера WinNT проверка по SID не поддерживается).
Вопрос, соответственно, в следующем - а как все-таки проверить - если пользователь входит в глобальную группу домена Domen1, а эта глобальная группа входит в локальную группу домена Domen2 - входит ли пользователь из домена1 в локальную группу домена 2?

Всего записей: 123 | Зарегистр. 31-08-2009 | Отправлено: 09:49 02-02-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
velvetfox

Цитата:
После копирования необходимо сравнить содержимое исходной  
папки с содержимым конечных папок и если файлы не совпадают...  
Файлы папок в Вашей ситуации могут отличаться, по-моему, в тех случаях, если:
 
—Не найдена исходная папка и работа скрипта завершилась ошибкой;
—в папке назначения на момент копирования находится большее кол-во файлов, чем в исходной.
 
Вас не устраивают подобные варианты? - тогда проверка папок на идентичность содержимого бессмысленна: нужно решать вопросы другими способами.

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 10:06 02-02-2010 | Исправлено: vlth, 13:03 02-02-2010
velvetfox

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlth
Спасибо за ответ.
Количество файлов и их типы в исходной папке и в конечных
всегда одинаковое - меняется только их размер.
Предположим, возникает ошибка во время копирования - сбой системы, вирус и т.п. -
вот для этого и нужна проверка.
Может быть я излишне перестраховываюсь, но мне важно быть уверенным,
что инфа скопирована без ошибок.

Всего записей: 8 | Зарегистр. 11-09-2009 | Отправлено: 10:39 02-02-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
velvetfox

Цитата:
Может быть я излишне перестраховываюсь

Так и есть

Код:
Option Explicit
Dim objFSO
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
On Error Resume Next  
objFSO.CopyFolder "C:\a\a1" , "D:\b\b1" , TRUE  
objFSO.CopyFolder "C:\a\a1" , "D:\c\c1" , TRUE
 
If Err<>0 Then
    MsgBox "Произошла ошибка: " & Err.Description,vbCritical
Else
    MsgBox "Копирование завершено успешно",vbInformation
End If
 
'On Error GoTo 0 'Отменяем игнорирование ошибок ("On Error Resume Next") в случае продолжения кода скрипта далее  

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 11:47 02-02-2010 | Исправлено: vlth, 11:53 02-02-2010
velvetfox

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlth
спасибо

Всего записей: 8 | Зарегистр. 11-09-2009 | Отправлено: 17:43 02-02-2010 | Исправлено: velvetfox, 18:06 02-02-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121

Цитата:
Так про замену ExeScript никто ничего не знает?

Здесь и оптимизатор, и компилятор...
 
Добавлено:
Сейчас проверил: я использовал этот компилятор 7 лет назад... Вроде всё нормально тогда проходило. Только потом почему-то на PrimalScript перешёл...
 
Добавлено:
До кучи (с того же ресурса)
http://www.freeware.ru/program_prog_id_4273.html

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 12:37 04-02-2010
Pacho



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121

Цитата:
Помогите разделить один бинарный файл на два.

Посмотри тут: VBScript & CMD: Разделение файла на фрагменты и их последующее слияние

----------
Нет судьбы, кроме той, которую мы выбираем.

Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 22:52 07-02-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pacho
спасибо, пока обхожусь разделением текстовика на другом зтапе работы.
Этот пример не совсем подходит, мне надо анализировать содержание определённых байтов блока, и в зависимости от этого раскидывать блоки на два файла. Например, если в определённом месте байты означают "0212" (не смотрел пока, как это в бинарном виде), то этот блок в 1024 байта пишем в один файл, все остальные блоки по 1024 пишем в другой.
vlth
ScriptCOM тоже не совсем то, синтаксис хоть и похож, но на 100% не совместим, т.е. нельзя компилировать уже готовые скрипты. Да и денег хотят. Тогда уж мне проще на AutoIt скрипт написать...

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 09:33 08-02-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
т.е. нельзя компилировать уже готовые скрипты
Я компилировал. Проблем не было.

Цитата:
Да и денег хотят.
Пункт в тексте лицензии
Цитата:
а) Вы можете использовать программу в ознакомительных целях не более 30 дней с момента
инсталляции. По прошествии 30-дневного срока пользователь обязан либо зарегистрировать программу путем приобретения лицензии, либо прекратить ею пользоваться и удалить как саму программу, так и её резервные копии, равно как и дистрибутив, а также скрипты и исполняемые
EXE файлы, полученные с помощью программы ScriptCOM
предполагает, что вы добропорядочный гражданин ))) Т.е. после истечения 30-дней ScriptCOM ведёт себя как и прежде, насколько я помню. К тому же, ресурса автора (он был на "народе") больше не существует...
 

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 15:48 08-02-2010
Pacho



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как проще оформить такую конструкцию?

Код:
If Условие Then
  Call Функция1
  Call Функция2
Else
  Call Функция, аналогичная Функции1, но внутрь оператора If вставлена ещё пара действий
  Call Функция, аналогичная Функции2, но с изменённой Функцией1 (см. выше)
End If
 
Sub Функция1
  For
    If условие2 Then
      ...
    End If
  Next
End Sub
 
Sub Функция2
  For
    Call Функция1
    Call Функция2
  Next
End Sub

Писать ещё Функию 3 и 4 или можно как-то попроще?
 
Добавлено:
 
Как получить код символа в двоичной системе?

Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 20:27 08-02-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как получить код символа в двоичной системе?

 
Используем функцию Asc(), затем смотрим  
http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/Data/325.mspx (Листинг 7), наверное...

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 15:52 09-02-2010
crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очень нужны 2 скрипта (или батника). Один из них ищет в текущем каталоге рекурсивно файлы с опр. расширениями (это переименованные zipы, маски задаются на входе или берутся из файла-списка), распаковывает их в одноимённые папки и удаляет зипы после распаковки. Второй осуществляет обратные преобразования (приводит всё какбэ к первоначальному виду) - упаковывает 7zip'ом содержимое папок с опр. расширениями в zipы, перемещает зипы на уровень вверх, удаляет распакованные папки со всем содержимым, переименовывает zipы обратно (удаляет расширение)
Сейчас есть батники для распаковки и выдачи списка:
Подробнее...

Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 11:35 11-02-2010
bygamer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
crotoff
Рекурсивный проход по папкам/подпапкам  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
Set objFolder = objFSO.GetFolder(strFolder)
Set colFiles = objFolder.Files
For Each objFile In colFiles
  File = objFile.Path
Next
 
ShowSubFolders(objFolder)
 
Sub ShowSubFolders(objFolder)
  Set colFolders = objFolder.SubFolders
  For Each objSubFolder In colFolders
    Set colFiles = objSubFolder.Files
    For Each objFile In colFiles
        File = objFile.Path
    Next
   ShowSubFolders(objSubFolder)
  Next
End Sub

Всего записей: 69 | Зарегистр. 12-07-2006 | Отправлено: 13:03 12-02-2010
crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bygamer
а где в скрипте входы/выходы? То есть где задать маски для поиска. Или хотя бы как подсунуть скрипту файл-список (в котором файлы с полными путями) для последовательных операций с каждым элементом списка?

Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 14:49 12-02-2010
bygamer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
crotoff
Рекурсивный проход по папкам и проверка на совпадение с переданным расширением.
Что делать с найденнами файлами и прикрутить список расширений сможешь сам...
 
Dim strFolder, setmask, File, objFSO, objFolder
 
strFolder = WScript.Arguments.Item(0) 'папка c которой начинать сканирование
setmask = WScript.Arguments.Item(1) ' маска в формате ".3"
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolder)
Set colFiles = objFolder.Files
For Each objFile In colFiles
  File = objFile.ShortName
    if Right(File,4) = setmask Then
       Doit File
    End if
Next
 
ShowSubFolders(objFolder)
Sub ShowSubFolders(objFolder)
  Set colFolders = objFolder.SubFolders
  For Each objSubFolder In colFolders
       Set colFiles = objSubFolder.Files
    For Each objFile In colFiles
        File = objFile.ShortName
            if Right(File,4) = setmask Then
            Doit File
            End if
    Next
   ShowSubFolders(objSubFolder)
  Next
End Sub
 
Function Doit(File)
WScript.Echo "Тут делаем что там надо с файлами"
End Function

Всего записей: 69 | Зарегистр. 12-07-2006 | Отправлено: 15:52 12-02-2010
crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bygamer
выдаёт ошибку    
и ещё такой вопрос - как адаптировать скрипт для рекурсивного  поиска не файлов по маске, а одноимённых подпапок для обработки их функцией Doit ?

Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 22:00 12-02-2010
Bad_BoY



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите как написать на VBS:
Set WSHShell = WScript.CreateObject("WScript.Shell")  
WSHShell_run="winrar.exe a ***.rar 123.txt" & var_pcNr  
WSHShell.Run(WSHShell_run)
 
Вместо звезд, сегодняшняю дату.

Всего записей: 179 | Зарегистр. 22-08-2001 | Отправлено: 15:48 13-02-2010
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bad_BoY

Код:
Set WSHShell = WScript.CreateObject("WScript.Shell")  
WSHShell_run="winrar.exe a " & date & ".rar 123.txt" & var_pcNr  
WSHShell.Run(WSHShell_run)

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 20:19 13-02-2010
GRom_V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
подскажите как сделать можно?: Вообщем надо ввести стакую команду:
#I0000062B,1,#S31=7,0,0,128,129,255,255,255,255,255,''Alarm''
 
Делаю так:  
WshShell.SendKeys "#I0000062B,1,#S31=7,0,0,128,129,255,255,255,255,255,"Alarm"{ENTER}"
Ругается... на кавычки "Alarm" - а ввести нужно именно с кавычками. Как написать?

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 03:45 15-02-2010 | Исправлено: GRom_V, 07:13 15-02-2010
Pacho



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
crotoff

Цитата:
выдаёт ошибку

Запускать надо: Скрипт.vbs Папка Маска_файла
 
GRom_V
WshShell.SendKeys "#I0000062B,1,#S31=7,0,0,128,129,255,255,255,255,255,""Alarm""{ENTER}"

Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 08:33 15-02-2010
   

Страницы: 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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru