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

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

   

tyff

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никто не ответил на мой вопрос потому что у задачи нет решения?

Всего записей: 8 | Зарегистр. 03-03-2010 | Отправлено: 03:01 30-03-2011
AndVGri

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

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

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

Код:
 
objFile.WriteLine Mid(content, InStr(content, """"))
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 08:21 30-03-2011
TYMAH3003

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

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 14:26 30-03-2011
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно подправить
не знаю как прописать папку 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

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 09:35 31-03-2011
OSADJAN

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

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

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

Код:
 
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  
 

 Но повторяяю, если папка назначения уже существует и в ней файлы с одинаковыми именами, то возможны ошибки при перезаписи файлов.
И ещё вопрос, а зачем, именно Copy, если можно просто переместить?
 
 
 
 
 

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 13:38 31-03-2011
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот этот работает идеально  
Мне тужно только чтоб поиск папки ишёл не в 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

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 16:11 31-03-2011 | Исправлено: TYMAH3003, 16:34 31-03-2011
OSADJAN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ты меня запутал...

Цитата:
Работает так вводим каталог пример имя 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  
 

Не мешало бы ещё добавить проверки для совпадений файлов, но это ты сам.
И ещё... Если, какие-то непонятки с путями, то надо проверять msgbox-сами и смотреть чего не хватает.Например:

Код:
 
SourceFolder = "E:\" & InputBox("Введите имя папки, из которой будет произведено копирование","Копирование")  
 
msgbox  SourceFolder
 
 If SourceFolder="E:\" & Empty Then  
   WScript.Quit  
 End If  
 
TempFolder = "E:\ИСХОДНЫЕ"
 
 msgbox TempFolder  
 
DestFolder = SourceFolder&"\"& "ИСХОДНЫЕ"  
 
 msgbox DestFolder
 

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 19:19 31-03-2011
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OSADJAN Скрипт создаёт E:\0\вводимая папка\ИСХ ,,,но папка  ИСХ пуста!!! ,,хотя в папке "Вводимая папка есть файлы" а если они там есть то и в папке ИСХ должны быть
а их нет ,,Выходит копиривание не проиходит из временной папки  

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 19:33 31-03-2011
OSADJAN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сейчас ещё разок проверю
 
Добавлено:
Вообщем так...
У себя создал 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
 

Напиши, как он у тебя пойдёт, пока ошибки у меня не выдавал.
 
 

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 20:16 31-03-2011 | Исправлено: OSADJAN, 09:23 01-04-2011
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема не решена папка ИСХ попрежнему пуста файлы не копируются только папки копирует , а файлы не хочет копирывать(((((
 
Добавлено:
РЕШИЛ ВОТ В ЧЁМ ОШИБКА была
 

Код:
'копируем файлы  
Set objFolder=objFSO.GetFolder("E:\0\" )   _____ какимто непонятным образом стало так а нужно это SourceFolder      
'---------------------------------------------------  
'копируем папки  
set rootfolder = objfso.getfolder(SourceFolder)  
'-----

 
 
Спасиб всё работает как часы)))

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 09:29 01-04-2011
OSADJAN

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

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 11:21 01-04-2011
tyff

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемый AndVGri
Это именно то, что надо - огромное человеческое спасибо!
 

Всего записей: 8 | Зарегистр. 03-03-2010 | Отправлено: 01:10 02-04-2011 | Исправлено: tyff, 05:05 02-04-2011
wizmo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите что я делаю не так  
Пытаюсь взять инфорацию о телефонах из книги 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
 

Всего записей: 6 | Зарегистр. 04-10-2005 | Отправлено: 09:41 04-04-2011 | Исправлено: wizmo, 09:42 04-04-2011
Cancer_to_Shanghai



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
задача такая. В одной игре надо неограниченное время долбить по 2м кнопкам: боковым стрелкам.
Просто? но геморно.
надо как-то автоматизировать сей процесс.  
 
Сабж темы поможет мне?
 

Всего записей: 612 | Зарегистр. 03-09-2010 | Отправлено: 10:37 04-04-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cancer_to_Shanghai, лучше AutoIt попробуй

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 11:47 04-04-2011
phandorin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, как гасится окно консоли при запуске методом Exec?
shellExec = WshShell.Exec("ftp.exe -s:ftp.txt")

Всего записей: 132 | Зарегистр. 05-08-2005 | Отправлено: 13:28 07-04-2011
AndVGri

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

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 16:13 07-04-2011
phandorin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! Пошел путем Run
 
WshShell.Run ftp.exe -s:ftp.txt ,0 , true

Всего записей: 132 | Зарегистр. 05-08-2005 | Отправлено: 16:31 07-04-2011 | Исправлено: phandorin, 16:33 07-04-2011
cRYSMAS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
strComputer ="192.168.0.14"
strCommand = "wscript.exe c:\off-4.vbs"
Set locator = CreateObject("wbemscripting.swbemlocator")
set objwmiservice = locator.connectserver(strComputer,"\\windows\root\cimv2","","")
Set objScheduledJob = objWMIService.Get("Win32_ScheduledJob")
tyear = mid(now(),7,4)
for i = 1 to 31
 datex = i & ".03." & tyear & " 01:00:00"
 datey = i & ".10." & tyear & " 01:00:00"
 if weekday (datex,2)="7" then martdate=datex
 if weekday (datey,2)="7" then octoberdate=datey
next
CurrTimePlusOneMin = Replace(Left(Right(dateadd ("n",1,Now()), 8), 5), ":", "")
if now() > martdate and now() < octoberdate then
 RunTime = "********" & CurrTimePlusOneMin & "00.000000+240"
else
 RunTime = "********" & CurrTimePlusOneMin & "00.000000+180"
end if
Res = objScheduledJob.Create(strCommand, RunTime, False, 2^(Weekday(Now(), 2)-1), 0, True, intJobID)
Вот такой скриптик запускает заданый скрипт(off-4.vbs) на локальной машине, при запуске скрипта ругаеться на: сервер RPC недоступен, службы RPC Dcom запущены в авто режиме. Тоже самое делаю но клиен изменяю на айпи сервера выдает отказ в доступе
В чем может быть причина? на клинтах маш. ОС Вин ХП проф. СП1
Если ли другая альтернатива запуска удаленного скрипта по локальной сети

Всего записей: 137 | Зарегистр. 18-03-2011 | Отправлено: 16:47 11-04-2011
LacettiRED



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Автоматизация мониторинга; Подскажите, как автоматизировать мониторинг инфы в инете?  
Уточняю вопрос: на сайте Ген консульства Финляндии для получения визы надо  сначала записаться на приём; для этого надо зайти сюда  https://www.visaservices.co.in/Finland-visa-application/AppScheduling/AppScheduling.aspx?P=PcqAqEGdf4OMbJ1CZgKHSUN3Je9Uumiy6NGhvmhMab7phBf7hKlWsBQNrNze6jyj+86S93yLA0yGdiqvwB5yZg%3d%3d  
там выбрать регион (Питер), в следующем окне, выбрать количество заявителей и вид визы и "отправить"; обычно в ответ видим сообщение об отсутствии свободных мест для записи; и потом всё повторяется снова и так в течение дня периодически надо мониторить : а не появилась ли вакансия? Можно ли автоматизировать эту рутину?  
1) полностью : т.е. ват файл сам периодически выполняет всю эту последовательность действий и в случае положительного ответа открывал бы окно для записи на приём  
2) частично , т.е. кликнул по ярлыку и вся эта последовательность команд тупо выполнилась и сам смотришь на результат.  
Т.е. максимально автоматизировать мониторинг вакансий на запись в Ген консульство на визу. Буду очень благодарен за ответ и любые отзывы на этот вопрос! )

Всего записей: 75 | Зарегистр. 27-02-2008 | Отправлено: 17:23 13-04-2011
   

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