![]() |
Нужна помощь в корекции скрипта для копирования файлов
Добрый день уважаемые форумчане знатоки языка 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 "Все комманды успешно выполнены" |
streamrider, в FSO нет средств для поиска по маске, только перебором. Вариант разбора и использования результатов «DIR <mask>» возможен, но может приводить к некорректным результатам — я его не рекомендую. То, что привели Вы («FSO.CopyFile "C:\*.txt"») — это не поиск, а отбор файлов.
Цитата:
|
Iska, Мне нужно сделать скрипт что бы он искал нужный мне файл на диске "C" включая под каталоги и скопировал его мне в папку .
Задача в общем такая мне нужен скрипт который при запуске искал файл hosts в директории Windows и потом найдя его скопировал его мне в мою папку . Это все нужно мне для моей программы которая редактирует с нужными параметрами это файлик а поскольку прямой доступ не разрешен к папке system32 мне нужно его скопировать и потом прога получив доступ вносила изменения и снова заменяла его обратно . ПО готово а вот скрипт нет ((( |
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, только чертовски медленно будет искать.
streamrider, зачем его искать, если всегда известно, где он находится? |
В дополнение. Копировать лучше методом CopyHere. Поскольку у FSO будут проблемы с файлами read only. Пример:
Код:
Option Explicit |
Спасибо огромное за помощь и за код для поиска )))) Осталось теперь поколдовать чтол бы этот код совместить с копированием по пути полученному этой функцией от Iska,
SendMessage, И вам огромное спасибо это как раз то что нужно ))))))))) |
Цитата:
streamrider, я тут посмотрел… Да, обязательно надо читать реестр и искать файл по указанному пути: Цитата:
|
Iska, если файл назначения имеет установленный атрибут «read only», метод objFSO.CopyFile (а также и objFSO.GetFile(filename).Copy) не сможет заменить этот файл, даже если параметр OverWrite выставлен True (что, впрочем, и есть по умолчанию).
|
SendMessage, А как описать strMyFolderPath = "z:\myfolder" что бы копирование шло в ту директорию где лежит сам скрипт ??? Я делал так :
strMyFolderPath = "parentfolder" В ответ ошибка |
SendMessage, спасибо, ясно. Ну, дык, есть же свойство «.Attributes», есть DeleteFile с параметром Force — какие проблемы.
streamrider, примерно так: |
Цитата:
|
SendMessage, согласен.
|
Время: 05:10. |
Время: 05:10.
© OSzone.net 2001-