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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

Smitis



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

Цитата:
Есть пример, написанный на WSH, как патчить бинарник. Мне надо тоже самое на VBS без использования сторонних библиотек.. Такое возможно?  

VBS это и есть WSH

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 21:46 10-12-2007
Sun Ray

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как проверить шару на наличие?  
Нужно проверить что шара существует, шара с доступом на чтение для всех. Следовательно можно юзать только гостевой вход в удаленную систему, но вот думаю как бы без wmi обойтись...

Всего записей: 461 | Зарегистр. 17-03-2006 | Отправлено: 07:36 11-12-2007
ripev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Господа, не могли бы вы подсказать?
 
Где мне найти или подскажите если не трудно скрипт который проверяя папку1 будет копировать в папку2 файлы созданные за последний день до момента запуска скрипта. Без графического интерфейса и оповещений.
 
Заранее благодарю.

Всего записей: 167 | Зарегистр. 17-09-2006 | Отправлено: 11:40 14-12-2007
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ripev
помечу:
1) цэ яваскрипт.
2) возможно будет долго обрабатывать папки с большим кол-м файлов, особенно по сети...

Цитата:
 
var fso=new ActiveXObject("Scripting.FileSystemObject"); // Общий обьект ф. системы
var s_dir="C:\\Folder1"; // каталог, отправитель
var d_dir="C:\\Folder2"; // каталог, получатель
 
drv=fso.GetFolder(s_dir); // Открываем каталог
fc = new Enumerator(drv.Files); // Получаем файлы в каталоге
// Перебор всех файлов
for (; !fc.atEnd(); fc.moveNext())  
{
  s_file=fc.item();
  c_file=fso.GetFile(s_file); //Открываем текущий файл
  f_name=c_file.Name; //Имя файла
  d_file=d_dir+f_name;
  // копирование только новых
  if (!fso.FileExists(d_file)) fso.CopyFile(s_file,d_file);  
}
 

 

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 11:55 14-12-2007 | Исправлено: megamozg13, 12:07 14-12-2007
ripev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
megamozg13
Вот что получилось
 
   
 
Выполняю в XP и Висте

Всего записей: 167 | Зарегистр. 17-09-2006 | Отправлено: 12:16 14-12-2007
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ripev
во первых - "copy.js"
во вторых - в путях обязательно двойной бэкслеш "\\"

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 12:19 14-12-2007
ripev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
megamozg13
 
Я наверно придираюсь, но скрипт правильно отработал (положил файлы в c:\Folder2) толко после того как я заменил:

Код:
var d_dir="C:\\Folder2"; // каталог, получатель  

на

Код:
var d_dir="C:\\Folder2\\"; // каталог, получатель  

 
Но все равно, огромное спасибо.

Всего записей: 167 | Зарегистр. 17-09-2006 | Отправлено: 12:36 14-12-2007 | Исправлено: ripev, 12:36 14-12-2007
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ripev
ну извиняй что не проверил, т.к. делал тебе вырезку куска кода...

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 12:50 14-12-2007
ripev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
megamozg13
Все отлично. Просто я не волоку в этом ни%рена. Попробовал путем подбора. Тем более помогло то, что ты указал на обязательное использование двойных слешей - \\

Всего записей: 167 | Зарегистр. 17-09-2006 | Отправлено: 13:02 14-12-2007
alur2005



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот скрипт ,Подскажите как файл 1.txt скопировать на рабочий стол.  
 
Const OverwriteExisting = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\111\1.txt" , "D:\", OverwriteExisting

Всего записей: 824 | Зарегистр. 06-09-2005 | Отправлено: 12:30 15-12-2007
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alur2005
 
цепляй через перменные из "set", например в яваскрипт:

Цитата:
user=Shell.ExpandEnvironmentStrings("%USERPROFILE%");

ну а далее добавить к пути "Desktop" либо "Рабочий стол" в зависимости от локализации.
 

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 12:43 15-12-2007
alur2005



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
megamozg13
 
все разобрался
 
Const OverwriteExisting = TRUE
 
set WhShell = CreateObject("WScript.Shell")
strDesktop = WhShell.SpecialFolders("Desktop")
 
Set FSO = CreateObject("Scripting.FileSystemObject")
 
FSO.CopyFile "C:\111\1.txt", strdesktop & "\", OverwriteExisting

Всего записей: 824 | Зарегистр. 06-09-2005 | Отправлено: 14:26 15-12-2007
Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alur2005, то же самое одной строкой
Код:
CreateObject("Scripting.FileSystemObject").CopyFile"C:\111\1.txt",CreateObject("WScript.Shell").SpecialFolders("Desktop")&"\",1

Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 07:47 16-12-2007
Sun Ray

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как на VBS можно сравнить пару файлов подобно линксевому diff?

Всего записей: 461 | Зарегистр. 17-03-2006 | Отправлено: 15:21 18-12-2007
jONES1979



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

Цитата:
Как на VBS можно сравнить пару файлов подобно линксевому diff?

вероятно вызвав программу "подобную линксевому diff" с нужными параметрами

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 22:24 18-12-2007
chainick2006

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос: как можно получить список зарегистрированных в системе COM-объектов или получить часть этого списка объектов с опр. именами. Что я имею ввиду. Установил я программу, которая зарегистривала свои объекты. Создать их можно, например, так:
 
Set obj1 = CreateObject("AT.Application")
или
Set obj2 = CreateObject("AT.Device")
 
т.е. как я понял АТ – это сервер, а Application и Device – объекты этого сервера. Так вот, в документации к программе описаны только несколько объектов. Когда я запустил редактор PrimalScript, то увидел значительно больше доступных объектов установленной программы. Т.е. разработчик заведомо дал не полную документацию. Вот и вопрос: как получить список всех доступных объектов сервера АТ и получить список всех членов (методы, свойства) нужного мне объекта, например, AT.Application?
Может можно как-то заюзать файлы с расширением *.tlb?
 
 
 

Всего записей: 75 | Зарегистр. 02-02-2006 | Отправлено: 13:06 20-12-2007
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
На основе предложенных вариантов, сделал функцию:
 

Код:
'Функция для отображения системного диалога сохранения
Function FileSaveDialog(sTitle, sInitDir, sFilter, sDefaultName)
    Set obj = CreateObject("MSComDlg.CommonDialog")
    obj.Filter = sFilter
    obj.MaxFileSize = 256
    obj.DialogTitle = sTitle
    obj.FileName = sDefaultName
    obj.InitDir= sInitDir
    obj.ShowSave
    FileSaveDialog = obj.FileName
End Function

 
Проблема в том, что нет(?) возможности проверить нажатие “Отмена” - т.е если мы нажимаем “Отмена”, возвращается obj.FileName, который содержит дефолтное имя файла )пререданное черех последний параметр), вот немогу сообразить, как отличить - юзер хочет сохранить с предложенным именем, или он хочет отменить сохранение?
 
Кстати с InputBox таже проблема

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:25 28-12-2007
pazdak

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ViSiToR
Странно, а я всегда думал, что это должно работать:

Цитата:
ShowSave method. Displays the Save As dialog box. Returns True if a file was selected and False if the user clicked the Cancel button.  

 

Всего записей: 376 | Зарегистр. 13-02-2003 | Отправлено: 10:07 28-12-2007
ViSiToR



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

Цитата:
это должно работать

Не работает - Всегда возвращает "" (пустую строку)...

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 11:40 28-12-2007
AndVGri

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

Код:
 
 Function FileSaveDialog(sTitle, sInitDir, sFilter, sDefaultName)
     On Error Resume Next
     Dim obj
    Set obj = CreateObject("MSComDlg.CommonDialog")
    obj.Filter = sFilter
    obj.MaxFileSize = 256
    obj.DialogTitle = sTitle
    obj.FileName = sDefaultName
    obj.InitDir= sInitDir
    obj.CancelError = True
    Err.Clear
    obj.ShowSave
    If Err.Number = 32755 Then
        MsgBox "Нажата отмена"
        FileSaveDialog = ""
    ElseIf Err.Number <> 0 Then
        'Обработка прочих ошибок
    Else
        FileSaveDialog = obj.FileName
    End If
End Function
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 16:21 28-12-2007
   

Страницы: 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