|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Нужна помощь в корекции скрипта для копирования файлов |
|
|
VBS/WSH/JS - [решено] Нужна помощь в корекции скрипта для копирования файлов
|
Пользователь Сообщения: 100 |
Добрый день уважаемые форумчане знатоки языка VBS . Ребята в общем проблема такая я только учусь писать скрипты и решил написать скрипт для поиска файлов по маске и копирования в созданную папку так вот проблема в том что он у меня ищет только если есть конкретный путь а если его нет то сразу "ошибка" Как сделать что бы он находил сам директорию на дисках без указания точного пути. Но самое важное если указать диск C:\*.txt то он ищет только на "C" а как сделать что бы он искал по всему диску "C" включая под каталоги ?
В общем то вопроса 2 : 1)Как мне указать относительный путь 2)И как сделать поиск по всему каталогу Вот мой код скрипта : set FSO=CreateObject("Scripting.FileSystemObject") set file=fso.getfile(wscript.scriptfullname) FSO.CreateFolder file.parentfolder+"\BACKUP" FSO.CopyFile "C:\*.txt", file.parentfolder+"\BACKUP" msgbox "Все комманды успешно выполнены" |
|
Отправлено: 10:49, 27-09-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать streamrider, в FSO нет средств для поиска по маске, только перебором. Вариант разбора и использования результатов «DIR <mask>» возможен, но может приводить к некорректным результатам — я его не рекомендую. То, что привели Вы («FSO.CopyFile "C:\*.txt"») — это не поиск, а отбор файлов.
Цитата streamrider:
|
|
Отправлено: 12:27, 27-09-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 100
|
Профиль | Отправить PM | Цитировать Iska, Мне нужно сделать скрипт что бы он искал нужный мне файл на диске "C" включая под каталоги и скопировал его мне в папку .
Задача в общем такая мне нужен скрипт который при запуске искал файл hosts в директории Windows и потом найдя его скопировал его мне в мою папку . Это все нужно мне для моей программы которая редактирует с нужными параметрами это файлик а поскольку прямой доступ не разрешен к папке system32 мне нужно его скопировать и потом прога получив доступ вносила изменения и снова заменяла его обратно . ПО готово а вот скрипт нет ((( |
Отправлено: 14:03, 27-09-2011 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать http://blogs.technet.com/b/heyscript...-computer.aspx
Только изменить WMI запрос,указав диск C: и имя файла. ("Select * From CIM_DataFile Where FileName = 'Budget' " & _ "AND Extension = 'txt' AND Drive = '" & strDrive & "'") А для случая с hosts,можно запросить ключ реестра и определить папку - HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DatabasePath |
Последний раз редактировалось Kazun, 27-09-2011 в 14:39. Отправлено: 14:34, 27-09-2011 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Kazun, только чертовски медленно будет искать.
streamrider, зачем его искать, если всегда известно, где он находится? |
|
Отправлено: 14:58, 27-09-2011 | #5 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать В дополнение. Копировать лучше методом CopyHere. Поскольку у FSO будут проблемы с файлами read only. Пример:
Option Explicit Dim strMyFolderPath Dim objShell Dim objMyFolder Dim objHostsFolder strMyFolderPath = "z:\myfolder" Set objShell = CreateObject("Shell.Application") Set objMyFolder = objShell.NameSpace(strMyFolderPath) Set objHostsFolder = objShell.NameSpace(objShell.NameSpace(&H25).ParseName("drivers\etc")) ' Копирование: ' из системной в свою objMyFolder.CopyHere objHostsFolder.Self.Path & "\hosts", 20 ' из своей в системную objHostsFolder.CopyHere objMyFolder.Self.Path & "\hosts", 20 |
Отправлено: 16:01, 27-09-2011 | #6 |
Пользователь Сообщения: 100
|
Профиль | Отправить PM | Цитировать Спасибо огромное за помощь и за код для поиска )))) Осталось теперь поколдовать чтол бы этот код совместить с копированием по пути полученному этой функцией от Iska,
SendMessage, И вам огромное спасибо это как раз то что нужно ))))))))) |
Отправлено: 16:18, 27-09-2011 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SendMessage:
streamrider, я тут посмотрел… Да, обязательно надо читать реестр и искать файл по указанному пути: Цитата Kazun:
|
||
Отправлено: 17:46, 27-09-2011 | #8 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Iska, если файл назначения имеет установленный атрибут «read only», метод objFSO.CopyFile (а также и objFSO.GetFile(filename).Copy) не сможет заменить этот файл, даже если параметр OverWrite выставлен True (что, впрочем, и есть по умолчанию).
|
Отправлено: 18:18, 27-09-2011 | #9 |
Пользователь Сообщения: 100
|
Профиль | Отправить PM | Цитировать SendMessage, А как описать strMyFolderPath = "z:\myfolder" что бы копирование шло в ту директорию где лежит сам скрипт ??? Я делал так :
strMyFolderPath = "parentfolder" В ответ ошибка |
Отправлено: 19:16, 27-09-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - [решено] нужна помощь с функцией копирования директорий | camope3 | Программирование и базы данных | 7 | 12-07-2011 22:20 | |
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 14-05-2009 15:45 | |
Нужна снова ваша помощь в написании интересного скрипта | Magnus | Вебмастеру | 2 | 09-06-2005 20:26 | |
Нужна помощь в написании скрипта | Magnus | Вебмастеру | 7 | 06-05-2005 10:53 | |
Нужна помощь в подборе скрипта и в дизайне | Guest | Вебмастеру | 3 | 18-10-2003 11:05 |
|