Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование "удобняшек" на VBScript

Автор: eheadz
Дата сообщения: 20.03.2011 14:06
Коллеги, прошу совета
Задача: по правому щелчку на папке проделывать с ней манипуляции: переименовывать и/или перемещать
ОС: WinXP SP3

Создал контекстное меню в реестре. Строка вызова: wscript.exe "C:\temp\myscript.vbs" "%1"
(Пробовал %0-%99 и вообще пустое место в кавычках - "", работает всё равно, странно, да?)

Написал скриптик.
Нашёл доступные методы манипулирования папками:
1. Scripting.FileSystemObject
2. WMI
3. Shell.Application.NameSpace
Выяснилось, что при попытке перемещения кликнутой папки:
1. Не работает. (Выдаёт ошибку о неправильности аргументов, емнип)
2. Не работает. (Выдаёт ошибку 15 - Sharing Violation)
3. Работает. Очень неудобно, что визуально содержимое директорий при этом методе не обновляется. Требуется ручной refresh.
Выяснилось, что при попытке переименования кликнутой папки:
1. То же
2. То же
3. Нет такого метода

Причина проблем открытый системой File Handle для щёлкнутого объекта.
Воткнул костыль - сделал функцию KillHandle с помощью консольной handle.exe

А можно без костылей?
Как вообще делается вызов правой кнопкой по науке? (Я - новичок)
Весь уже изгуглился, но ничего так и не нашел
Правда, к vbscript не прикрутить закрытие file handle?
Прошу помощи или диагноза
Автор: cRYSMAS
Дата сообщения: 23.03.2011 10:13
On Error Resume Next

strComputer = "."
strTarget = "194.54.89.232" 'IP address or hostname
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
Err.Clear
For Each objPing in colPings 'избавиться от форича
If Err = 0 Then
Err.Clear
If objPing.StatusCode = 0 Then
' если статус = 0, пустая строка - другое
Else
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 5000
oShell.SendKeys "login" & chr(13)
WScript.Sleep 2000
oShell.SendKeys "pass" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "reboot" & chr(13)
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Next
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If

Вот такой скриптик добавил в планировщик задач ребутит модем если указаный айпи не доступен, вопрос: как закрыть окно теленета после команды ребута?
Автор: AndVGri
Дата сообщения: 23.03.2011 10:33
cRYSMAS
попробуй вместо

Цитата:
oShell.Run "telnet.exe 192.168.1.1"

Set pExec = pShell.Exec("telnet.exe 192.168.1.1")
тогда можно будет убить
pExec.Terminate
Автор: cRYSMAS
Дата сообщения: 23.03.2011 10:42
изменил вот так:
...
Set pExec = WScript.CreateObject("WScript.Shell")
Set pExec = pShell.Exec("telnet.exe 192.168.1.1")
WScript.Sleep 5000
pExec.SendKeys "login" & chr(13)
WScript.Sleep 2000
pExec.SendKeys "pass" & chr(13)
WScript.Sleep 1000
pExec.Terminate
...
пишет login не являеться внутреней или внешней командой, исполняемой програмой или командным файлом.

Не мой скрипт, синтаксис написания в вбс не знаю
ПС. Мат части очень мало знаю
Автор: AndVGri
Дата сообщения: 23.03.2011 10:59
cRYSMAS
Напрасно убрал oShell.

Код:
Option Explicit
Dim pShell, pExec
Set pShell = CreateObject("WScript.Shell")

Set pExec = pShell.Exec("cmd /k telnet 10.151.62.65")
WScript.Sleep 5000
pShell.SendKeys "login" & Chr(13), 10
WScript.Sleep 2000
pShell.SendKeys "pass" & Chr(13), 10
WScript.Sleep 2000
pExec.Terminate
Автор: cRYSMAS
Дата сообщения: 23.03.2011 11:13
ошибка на option explicit требует наличие инструкции запускаю скрипт в cmd cscript.exe
отладчика другого нету нужно сделать так?
On Error Resume Next

strComputer = "."
strTarget = "192.168.0.20"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
Err.Clear
For Each objPing in colPings 'избавиться от форича
If Err = 0 Then
Err.Clear
If objPing.StatusCode = 0 Then
' если статус = 0, пустая строка - другое
Else

Option Explicit
Dim pShell, pExec

' какую из двух строк оставить?
Set pShell = CreateObject("WScript.Shell")
Set oShell = WScript.CreateObject("WScript.Shell")

Set pExec = pShell.Exec("cmd telnet 192.168.1.1")
WScript.Sleep 5000
pShell.SendKeys "login" & Chr(13), 10
WScript.Sleep 2000
pShell.SendKeys "pass" & Chr(13), 10
WScript.Sleep 1000
'pShell.SendKeys "reboot" & Chr(13), 10
pExec.Terminate
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Next
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If

Добавлено:
если я убрал oShell поставил pExec зачем строка Set oShell = WScript.CreateObject("WScript.Shell") потому как дальше oShell использоваться не будет
или я не прав?
Автор: AndVGri
Дата сообщения: 23.03.2011 11:22
cRYSMAS
Начинающий?
Убери
Option Explicit
Set oShell = CreateObject("WScript.Shell") - ты ж к нему не разу потом не обращаешься,
да и Dim pShell, pExec, коль пошла такая пьянка тоже;)
Автор: cRYSMAS
Дата сообщения: 23.03.2011 11:41
сделал так

Set pExec = CreateObject("WScript.Shell")
Set pExec = pShell.Exec("cmd /k telnet 192.168.1.1")
WScript.Sleep 1000
pExec.SendKeys "login" & Chr(13), 10
WScript.Sleep 1000
pExec.SendKeys "pass" & Chr(13), 10
WScript.Sleep 1000
pExec.SendKeys "reboot" & chr(13)
WScript.Echo "reboot"
pExec.Terminate

пишет login не являеться внутреней или внешней командой, исполняемой програмой или командным файлом. и пас тоже

оно даже не показывает соединение с телнетом
руками вожу cmd /k telnet 192.168.1.1 все норм подключается, убрал строку Set pExec = CreateObject("WScript.Shell") пишет после 2-3 сек ехо reboot

вообщем сделай текстовый файл переменуй в вбс вставь туда код
On Error Resume Next

strComputer = "."
strTarget = "192.168.0.20" 'айпишник который не пингуеться
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
Err.Clear
For Each objPing in colPings 'избавиться от форича
If Err = 0 Then
Err.Clear
If objPing.StatusCode = 0 Then
' если статус = 0, пустая строка - другое
Else
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 5000
oShell.SendKeys "логин" & chr(13)
WScript.Sleep 2000
oShell.SendKeys "пароль" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "reboot" & chr(13)
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Next
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If

запусти с cmd и поймеш что я хочу сделать, да и асю отключи если весит потому как пароль будет водить в поиск в аси
Автор: tyff
Дата сообщения: 27.03.2011 15:13
Здравствуйте уважаемые знатоки.
Требуется vbs совет. Имеется скрипт который ищет в лог файле строчку содержащую "ХХХХ112233445566PM".
Если такая строчка имеется она будет скопирована в отдельный файл "Txt4Run.txt"
Эта строчка всегда начинается с чего-то вроде:
11/3/2011 4:01:35 PM:Executing the batch containing : "c:\MyProgram\ХХХХ112233445566PM.exe" и т.д (исходя из даты записи).
скрипт:

set fs = CreateObject("Scripting.FileSystemObject")
filename = "C:\test\MyLog.log"
set handle = fs.OpenTextFile(filename)
content = handle.ReadLine
do until handle.atEndofStream
if InStr(content, "ХХХХ112233445566PM") > 0 then
Set objFile = fs.OpenTextFile("C:\Txt4Run.txt", 2, True)
objFile.WriteLine content

else
MsgBox " NO MATCH " & content
end if
content = handle.ReadLine
loop
handle.close

Вопрос: Как сделать так чтобы в отдельный фаил копировалось только то, что идет после ".
Т.е "11/3/2011 4:01:35 PM:Executing the batch containing : " автоматически стиралось бы, а в "Txt4Run.txt" строчка бы начиналась с "c:\MyProgram\ХХХХ112233445566PM.exe"

Заранее спасибо.
Автор: phandorin
Дата сообщения: 27.03.2011 17:29
Подскажите как поступить в следующей ситуации.

Есть файл в котором 2 строка логин, 3 пароль.
Считываю скриптом 2 строку к примеру так:

Dim objFS,objTS, login
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.OpenTextFile("klients.txt", 1)
For i=1 To (1)
objTS.SkipLine
Next
login = objTS.Readline
WScript.Echo login
objTS.Close

И получаю что-то вроде этого login = pupkin
Пароль считанный в 3 строке будет passwd = 123

Далее нужно передать определенный файлик на удаленный сервер в дирректорию pupkin при помощи

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\pscp.exe -pw passwd info.txt login@pupkin.ru:/home/pupkin/"

Как подсунуть переменные passwd и login в последней строке ибо так не получается.
Если просто подставить значения 123 и pupkin данные на сервер отправляются.

И второй вопрос при первом соединении как автоматом подставить Y чтобы добавить fingerprint На сервер нового соединения.

Автор: AndVGri
Дата сообщения: 28.03.2011 01:52
phandorin

Код:
sCom = "%windir%\pscp.exe -pw passwd info.txt login@pupkin.ru:/home/pupkin/"
sCom = Replace(sCom, "login", login, 1, -1, vbTextCompare)
sCom = Replace(sCom, "passwd", passwd, 1, -1, vbTextCompare)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run sCom
Автор: phandorin
Дата сообщения: 28.03.2011 14:43

Цитата:
sCom = "%windir%\pscp.exe -pw passwd info.txt login@pupkin.ru:/home/pupkin/"
sCom = Replace(sCom, "login", login, 1, -1, vbTextCompare)
sCom = Replace(sCom, "passwd", passwd, 1, -1, vbTextCompare)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run sCom


Пока не пашет. проверяю так

sCom = "putty.exe -ssh -pw passwd login@pupkin.ru"
sCom = Replace(sCom, "login", login, 1, -1, vbTextCompare)
sCom = Replace(sCom, "passwd", passwd, 1, -1, vbTextCompare)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run sCom

Не могу консоль отловить, но похоже что-то типа using логин бла бла и окно закрывается
Автор: TYMAH3003
Дата сообщения: 29.03.2011 10:23
Нужен такой вот скриптик, полное копирование папки.
На диске Е лежат папки типа 324 234 111 ,,, Запускаем скрипт ОН спрашивает какую папку вы хотите скопирывать мы вводим к примеру 111 ,,, скрипт заходит в эту папку копирует всё содержимое файлы и папки в папку ИСХОДНЫЕ в этой же папке 111,, можно ли так сделать, у кого это займёт 5 мин если не сложно
Автор: OSADJAN
Дата сообщения: 29.03.2011 23:26
Вот набросал...Сам недавно в VBS. поэтому много ещё не знаю.Подправишь, ежели чего...

Код:
SourceFolder = "E:\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")
If SourceFolder="E:\" & Empty Then
WScript.Quit
End If

TempFolder = "E:\ИСХОДНЫЕ"

DestFolder = SourceFolder&"\"& "ИСХОДНЫЕ"

Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(TempFolder) Then
Else
fso.createfolder(TempFolder)
End If

For Each Folder In FSO.GetFolder(SourceFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

Next

If FSO.FolderExists(SourceFolder&"\"&"ИСХОДНЫЕ") Then
For Each Folder In FSO.GetFolder(TempFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

next

Else
FSO.MoveFolder TempFolder, SourceFolder&"\"
End If

If FSO.FolderExists(TempFolder) Then
FSO.DeleteFolder TempFolder
End if
Автор: tyff
Дата сообщения: 30.03.2011 02:01
Никто не ответил на мой вопрос потому что у задачи нет решения?
Автор: AndVGri
Дата сообщения: 30.03.2011 07:21
tyff

Цитата:
Никто не ответил на мой вопрос потому что у задачи нет решения?

Почему нет решения? Вопрос только несколько невнятный, да и скрипт оставляет желать лучшего. Насколько понял:

Код:
objFile.WriteLine Mid(content, InStr(content, """"))
Автор: TYMAH3003
Дата сообщения: 30.03.2011 13:26
OSADJAN спасиб то что нужно работает
Автор: TYMAH3003
Дата сообщения: 31.03.2011 08:35
Нужно подправить
не знаю как прописать папку 0 чисто в корне копирует, агде ещё прописать чтоб E:\0\ имя папки ,,, и там создавал исх папку,,,,, вроде он её создаёт но файлы из введённого имени папки не копирует
Пост выше

Код: SourceFolder = "E:\0\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")
If SourceFolder="E:\0\" & Empty Then
WScript.Quit
End If

TempFolder = "E:\0\ИСХ"

DestFolder = SourceFolder&"\"& "ИСХ"

Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(TempFolder) Then
Else
fso.createfolder(TempFolder)
End If

For Each Folder In FSO.GetFolder(SourceFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

Next

If FSO.FolderExists(SourceFolder&"\"&"ИСХ") Then
For Each Folder In FSO.GetFolder(TempFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

next

Else
FSO.MoveFolder TempFolder, SourceFolder&"\"
End If

If FSO.FolderExists(TempFolder) Then
FSO.DeleteFolder TempFolder
End if
Автор: OSADJAN
Дата сообщения: 31.03.2011 12:38

Цитата:
Нужно подправить

Вот подправил, если я правильно понял, что ты хочешь.
Если не то, то поконкретней распиши, что, и от куда и куда копировать...
У меня один раз выдало ошибку:"Отказано в доступе"

Код:
SourceFolder = "E:\0\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")
If SourceFolder="E:\0\" & Empty Then
WScript.Quit
End If

TempFolder = "E:\ИСХ"

DestFolder = SourceFolder&"\"& "ИСХ"

Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(TempFolder) Then
Else
fso.createfolder(TempFolder)
End If

For Each Folder In FSO.GetFolder(SourceFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

Next

If FSO.FolderExists(SourceFolder&"\"&"ИСХ") Then
For Each Folder In FSO.GetFolder(TempFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

next

Else
FSO.MoveFolder TempFolder, SourceFolder&"\"
End If

If FSO.FolderExists(TempFolder) Then
FSO.DeleteFolder TempFolder
End if
Автор: TYMAH3003
Дата сообщения: 31.03.2011 15:11
Вот этот работает идеально
Мне тужно только чтоб поиск папки ишёл не в E:\ а в E:\0\ вот в этом каталаге тоесть дописать подкаталог а всё остальное оставить как есть.

Работает так вводим каталог пример имя 111 ,,, он Ищет в E:\0\ этот каталог , заходит в него копирует всё содержимое каталога 111 и в этом же катологе создаёт каталог ИСХОДНЫЕ ,,,, тоесть E:\0\111\ИСХОДНЫЕ вот так

А этот скрипт который Вы написали ищет в корне диска E:\ нужно просто немного изменить путь на E:\0\ вот и всё просто не могу понять где и как дописать

Перемещать нельзя мне нужны копии этих файлов в разных папках ,,, тоесть в ИСХ - исходные а в корне папки редактированные будут


Код: SourceFolder = "E:\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")
If SourceFolder="E:\" & Empty Then
WScript.Quit
End If

TempFolder = "E:\ИСХОДНЫЕ"

DestFolder = SourceFolder&"\"& "ИСХОДНЫЕ"

Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(TempFolder) Then
Else
fso.createfolder(TempFolder)
End If

For Each Folder In FSO.GetFolder(SourceFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

Next

If FSO.FolderExists(SourceFolder&"\"&"ИСХОДНЫЕ") Then
For Each Folder In FSO.GetFolder(TempFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

next

Else
FSO.MoveFolder TempFolder, SourceFolder&"\"
End If

If FSO.FolderExists(TempFolder) Then
FSO.DeleteFolder TempFolder
End if
Автор: OSADJAN
Дата сообщения: 31.03.2011 18:19
Ты меня запутал...

Цитата:
Работает так вводим каталог пример имя 111 ,,, он Ищет в E:\0\ этот каталог , заходит в него копирует всё содержимое каталога 111 и в этом же катологе создаёт каталог ИСХОДНЫЕ ,,,, тоесть E:\0\111\ИСХОДНЫЕ вот так

Предыдущий скрипт, именно это и делает, так? Вот и посмотри, что я заменил, поэкспреминтируй. Или предложи свой вариант... Вместе подумаем.
Или давай я тебе распишу, что-где-когда. Смотри:

Код:
'----------------------------------------------------------------------------------------------------
' Запрос имени папки откуда копировать, где "E:\0\" - неполный путь
SourceFolder = "E:\0\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")
'-----------------------------------------------
' Лечение возврата пустой строки, а также кн.Отмена
If SourceFolder="E:\0\" & Empty Then
WScript.Quit
End If
'--------------------------------------------
' Временная папка
TempFolder = "E:\ИСХ"
'--------------------------------------------
' Целевая папка
DestFolder = SourceFolder&"\"& "ИСХ"
'------------------------------------------------
' Создаём объект
Set FSO = CreateObject("Scripting.FileSystemObject")
'----------------------------------------------
'Проверяем есть ли временная папка
If FSO.FolderExists(TempFolder) Then
'----------------------------------------------
'Если есть ничего не делаем
'------------------------------------
'Если нету создаём
Else
fso.createfolder(TempFolder)
End If
'-----------------------------------------------------------------------
'Требуемые объекты для копирования
For Each Folder In FSO.GetFolder(SourceFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

Next
'----------------------------------------------
'Здесь проверки, если будут проводиться повторные копирования
'Проверяем, есть ли целевая папка
'Если есть просто копируем из временной папки в целевую
If FSO.FolderExists(SourceFolder&"\"&"ИСХ") Then
For Each Folder In FSO.GetFolder(TempFolder).SubFolders
FSO.CopyFolder SourceFolder, TempFolder

next
'-----------------------------------------------------
'тут для всех случаев - перемещаем временную папку на место назначения
'временная стала целевой
Else
FSO.MoveFolder TempFolder, SourceFolder&"\"
End If
'------------------------------------------
'удаление временной папки, если использовалось повторное копирование
If FSO.FolderExists(TempFolder) Then
FSO.DeleteFolder TempFolder
End if
Автор: TYMAH3003
Дата сообщения: 31.03.2011 18:33
OSADJAN Скрипт создаёт E:\0\вводимая папка\ИСХ ,,,но папка ИСХ пуста!!! ,,хотя в папке "Вводимая папка есть файлы" а если они там есть то и в папке ИСХ должны быть
а их нет ,,Выходит копиривание не проиходит из временной папки
Автор: OSADJAN
Дата сообщения: 31.03.2011 19:16
Сейчас ещё разок проверю

Добавлено:
Вообщем так...
У себя создал E:\0\1111
Накидал в 1111 файлов и папок
При первом запуске ошибка:"Нет доступа"
При повторном запуске - всё сработало.

Добавлено:
А тебе не подойдёт скрипт копирования,например папки 1111 целиком в папку ИСХ?
Где-то у меня лежит подобный, только там немного надо подправить, а переделывать под твои условия, ещё не хватит знаний

Добавлено:
Для
Цитата:
TYMAH3003
.
У меня, что-то это не выходит из головы. Немного погугливши, покумекавши набросал вот такое:

Код:
'------------------
'Откуда копируем
SourceFolder = "E:\0\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")
'----------------------------
'лечим пустую строку ввода
If SourceFolder="E:\0\" & Empty Then
WScript.Quit
End If
'------------------
'временная папка
TempFolder = "E:\ИСХ"
'---------------------
'целевая папка
DestFolder = SourceFolder&"\"& "ИСХ"

Set objFSO=CreateObject("Scripting.FileSystemObject")
'---------------------------------------
'проверка наличия временной папки
If objFSO.FolderExists(TempFolder) Then
'-------------------------------------------
'если есть удаляем старую и создаём новую
objFSO.DeleteFolder TempFolder
objfso.createfolder(TempFolder)
Else
'------------------
'если нет создаём
objfso.createfolder(TempFolder)
End If
'------------------------------------------------
'копируем файлы
Set objFolder=objFSO.GetFolder(SourceFolder)
Set colFiles=objFolder.Files
For Each file In colFiles
f = file.ShortPath
objFSO.Copyfile f, TempFolder&"\"
Next
'---------------------------------------------------
'копируем папки
set rootfolder = objfso.getfolder(SourceFolder)
dst_folder = TempFolder
for each rf in rootfolder.subfolders
call objfso.copyfolder(rf, dst_folder & "\" & rf.name)
next
'-------------------------------------------------
'проверяем наличие целевой папки
If objFSO.FolderExists(DestFolder) Then
'-----------------------------------------------------
'если есть, запрашиваем действие
'Добавление к имени файла при переименовании
NameAdd = Right("0" & Month(Date), 2) &"." & Right("0" & Day(Date), 2) &"." & Year(Date) & "г"
'собственно сам запрос
result = MsgBox ("Папка """& DestFolder &""" уже существует." & Chr(10) & "Выберите действие:" & Chr(10) & " " & Chr(10) & """Да"" - переименовать папку в """& DestFolder & "_" & NameAdd & Chr(10) & "и продолжить работу." & Chr(10) & """Нет"" - окрыть существующую папку для просмотра и закончить работу скрипта." & Chr(10) & """Отмена"" - перезаписать папку.", vbYesNoCancel, "Выбор действия.")

'проверки при выборе действия
Select Case result
Case vbYes
if objFSO.FolderExists(DestFolder & "_" & NameAdd) Then
objFSO.DeleteFolder DestFolder & "_" & NameAdd
objFSO.MoveFolder DestFolder , DestFolder & "_" & NameAdd
objFSO.MoveFolder TempFolder, SourceFolder&"\"
WScript.Sleep 500
Else
objFSO.MoveFolder DestFolder , DestFolder & "_" & NameAdd
objFSO.MoveFolder TempFolder, SourceFolder&"\"
WScript.Sleep 500
end if
Case vbNo
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run(DestFolder & "\")
WScript.Quit 0
Case vbCancel
objFSO.DeleteFolder DestFolder
objFSO.MoveFolder TempFolder, SourceFolder&"\"
End Select
Else
objFSO.MoveFolder TempFolder, SourceFolder&"\"
End if
Автор: TYMAH3003
Дата сообщения: 01.04.2011 08:29
Проблема не решена папка ИСХ попрежнему пуста файлы не копируются только папки копирует , а файлы не хочет копирывать(((((

Добавлено:
РЕШИЛ ВОТ В ЧЁМ ОШИБКА была


Код: 'копируем файлы
Set objFolder=objFSO.GetFolder("E:\0\" ) _____ какимто непонятным образом стало так а нужно это SourceFolder
'---------------------------------------------------
'копируем папки
set rootfolder = objfso.getfolder(SourceFolder)
'-----
Автор: OSADJAN
Дата сообщения: 01.04.2011 10:21
Пожалуйста, TYMAH3003
Автор: tyff
Дата сообщения: 02.04.2011 00:10
Уважаемый AndVGri
Это именно то, что надо - огромное человеческое спасибо!

Автор: wizmo
Дата сообщения: 04.04.2011 08:41
Подскажите что я делаю не так
Пытаюсь взять инфорацию о телефонах из книги excel и присвоить юзерам

const xlsFileName = "c:\final.xlsx"
set fso = createobject("Scripting.FileSystemObject")
set a = createobject("excel.application")
set b = a.workbooks.open(xlsFileName)
set s = b.sheets(1)
i = 1
Do While i < 2
Const ADS_PROPERTY_UPDATE = 2
        Set objUser = GetObject _
    ("LDAP://cn="&s.Cells(i,1).Value&",ou=test,dc=test,dc=lan")
        objUser.Put "telephoneNumber", s.Cells(i,2).Value
        objUser.PutEx ADS_PROPERTY_UPDATE, "telephoneNumber", Array(s.Cells(i,2).Value)
        objUser.SetInfo
        i = i +1
Loop

Пишет phone.vbs(27, 3) (null): Неопознанная ошибка на строке objUser.Put "telephoneNumber", s.Cells(i,2).Value

Автор: Cancer_to_Shanghai
Дата сообщения: 04.04.2011 09:37
задача такая. В одной игре надо неограниченное время долбить по 2м кнопкам: боковым стрелкам.
Просто? но геморно.
надо как-то автоматизировать сей процесс.

Сабж темы поможет мне?

Автор: MERCURY127
Дата сообщения: 04.04.2011 10:47
Cancer_to_Shanghai, лучше AutoIt попробуй
Автор: phandorin
Дата сообщения: 07.04.2011 12:28
Ребята, как гасится окно консоли при запуске методом Exec?
shellExec = WshShell.Exec("ftp.exe -s:ftp.txt")

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

Предыдущая тема: Работа в Delphi c CryptoApi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.