Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как на VBS копировать файлы ? / 20 сообщений из 20, страница 1 из 1
02.02.2005, 14:28
    #32897157
petro666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Нужно написать скрипт, который копирует файлы с сетевых ресурсов со всеми папками.
...
Рейтинг: 0 / 0
03.02.2005, 14:30
    #32899244
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Копирование файла:

Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\FSO\ScriptLog.txt" , "D:\Archive\", OverwriteExisting


Копирование папки:

Const OverWriteFiles = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder "C:\Scripts" , "C:\FSO" , OverWriteFiles


Получение списка всех файлов в папке:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService. _
ExecQuery("Select * from CIM_DataFile where Path = '\\Scripts\\'")
For Each objFile in colFiles
Wscript.Echo objFile.Name
Next


Получение списка всех подпапок в папке:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\FSO")
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
Wscript.Echo objSubfolder.Name, objSubfolder.Size
Next
...
Рейтинг: 0 / 0
03.02.2005, 19:02
    #32900163
petro666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Огромное спасибо. Будем пробовать.
...
Рейтинг: 0 / 0
03.02.2005, 19:12
    #32900172
petro666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Тут возник ещё один вопрос. После того как я получил весь список вложенных папок, как мне потом создать этот список ?
...
Рейтинг: 0 / 0
04.02.2005, 14:09
    #32901396
petro666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Всё заработало. СПАСИБО.
...
Рейтинг: 0 / 0
04.02.2005, 18:16
    #32902125
petro666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Как проверить возможно файл прочитать или нет ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.06.2009, 17:28
    #36036123
Alex3163
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
У меня прекрасно работает этот скрипт на vbs:
SourceFolder = "\\server1\Папка-источник"
DestFolder = "\\server2\Папка-приёмник"
LogFolder = "\\server3\Папка-хранилище отчётов\"
'====================================================================
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshNetwork = CreateObject("WScript.Network")
Set LogFile = FSO.OpenTextFile(LogFolder & "\copy.log", 8, True)
LogFile.WriteLine " "
LogFile.WriteLine Now & " --- Инициализация процесса копирования ---"
If Not FSO.FolderExists(SourceFolder) Then
LogFile.WriteLine Now & ", " & WshNetwork.ComputerName & ", " & WshNetwork.UserName & _
": Каталог " & SourceFolder & " не существует."
If Not FSO.FolderExists(DestFolder) Then
LogFile.WriteLine Now & ", " & WshNetwork.ComputerName & ", " & WshNetwork.UserName & _
": Каталог " & DestFolder & " не существует."
LogFile.Close
WScript.Quit
End If
End If
For Each Folder In FSO.GetFolder(SourceFolder).SubFolders
FSO.CopyFolder SourceFolder, DestFolder
If Err.Number Then
LogFile.WriteLine Now & ", " & WshNetwork.ComputerName & ", " & WshNetwork.UserName & _
": " & Err.Description & " " & Folder.Name
Else
LogFile.WriteLine Now & ", " & WshNetwork.ComputerName & ", " & WshNetwork.UserName & _
" - Копирование папки " & Folder.Name & " завершено успешно. "
i = Folder.Name
FSO.DeleteFolder Folder
LogFile.WriteLine Now & ", " & WshNetwork.ComputerName & ", " & WshNetwork.UserName & _
" - Папка-источник " & i & " удалена."
Err.Clear
End If
Next
LogFile.Close

Обратить внимание на отсутствие слэшей в конце путей к SourceFolder и DestFolder,
если удалять файлы нет необходимости - закомментировать строки с i = Folder.Name
по Err.Clear (её оставить). отдельные файлы в корне папки-источника не удаляются,
что удобно для хранения там логов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.08.2013, 09:30
    #38379493
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Доброго времени суток, я пытаюсь написать скрипт копирования файлов по их разрешению из папки на сервер. Я VBS изучать начал неделю назад и никак не могу понять, в чем ошибка.
Код: vbnet
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.
Option Explicit
Dim outFolder: outFolder = "C:\TEST"
Dim inFolder: inFolder = "\\Server"
Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim WSNetwork: Set WSNetwork = CreateObject("WScript.Network")
 
If oFSO.FolderExists(outFolder) AND oFSO.FolderExists(inFolder) Then
  CopyFileOnMask outFolder, "exe txt rar" ' каталог и маски файлов для копирования
  WScript.Echo "Готово."
Else
  WScript.Echo "Не найден один из путей " & outFolder & " " & "ИЛИ" & " " & inFolder
End If
WScript.Quit(0)
 
Function CopyFileOnMask(s, sMask)
  Dim oFld, iFld, arrMask, v, i
  Set oFld = oFSO.GetFolder(s)
  Set iFld = oFSO.GetFolder(inFolder)
  arrMask = Split(LCase(sMask), " ")
  For Each v In oFld.Files
    For i = LBound(arrMask) To UBound(arrMask)
      If LCase(oFSO.GetExtensionName(s & "\" & v.Name)) = arrMask(i) Then
        v.Copy ("iFld"), True
        Exit For
      End If
    Next
  Next
End Function
...
Рейтинг: 0 / 0
28.08.2013, 09:46
    #38379508
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
первое, что бросилось в глаза
Код: vbnet
1.
v.Copy ("iFld"), True

если нужно взять значение переменной, то не надо брать ее в кавычки, иначе это не переменная, а просто текстовая строка.

А вообще Snak2013никак не могу понять, в чем ошибка.а мы должны угадать, в чем проблема? "Доктор, у меня болит, но я не скажу что. Лечите меня"
...
Рейтинг: 0 / 0
28.08.2013, 13:58
    #38379872
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Спасибо огромное Shocker.Pro , мне это очень помогло, скрипт заработал и вот его рабочий вид, копируется все как на локальную машину так и на сеть:
Код: vbnet
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.
Option Explicit
Dim outFolder: outFolder = "C:\TEST\"
Dim inFolder: inFolder = "\\Server"
Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim WSNetwork: Set WSNetwork = CreateObject("WScript.Network")
 
If oFSO.FolderExists(outFolder) AND oFSO.FolderExists(inFolder) Then
  CopyFileOnMask outFolder, "exe txt rar" ' каталог и маски файлов для копирования
  WScript.Echo "Готово."
Else
  WScript.Echo "Не найден один из путей " & outFolder & " " & "ИЛИ" & " " & inFolder
End If
WScript.Quit(0)
 
Function CopyFileOnMask(s, sMask)
  Dim oFld, iFld, arrMask, v, i, num
  num = 0
  Set oFld = oFSO.GetFolder(s)
  Set iFld = oFSO.GetFolder(inFolder)
  arrMask = Split(LCase(sMask), " ")
  For Each v In oFld.Files
    For i = LBound(arrMask) To UBound(arrMask)
      If LCase(oFSO.GetExtensionName(s & "\" & v.Name)) = arrMask(i) Then
        v.Copy(iFld & "\" & v.Name), True
		num = num + 1
		'oFSO.CopyFile v, iFld & v.Name, True
        Exit For
      End If
    Next
  Next
  If Err.Number Then
WScript.Echo "Обновление прошло с ошибками. Сообщите об этом администратору."
else
WScript.Echo "Обновление прошло успешно. Скопировано " & num & " файлов."
Err.Clear
End if
End Function
...
Рейтинг: 0 / 0
02.09.2013, 15:40
    #38384272
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Доброго времени суток у меня возник ещё вопрос касательно копирования файлов через VBS. Мне нужно чтобы скрипт находил в папке файлы с определенным именем независимо от расширения файла и переносил их в другую папку на сети. Вот скрипт который делает нечто похожее но требует имя файла вместе с расширением
Код: vbnet
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.
Option Explicit
Dim outFolder: outFolder = "C:\TEST\"
Dim inFolder: inFolder = "\\server"
Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim WSNetwork: Set WSNetwork = CreateObject("WScript.Network")
 
If oFSO.FolderName(outFolder) AND oFSO.FolderExists(inFolder) Then
  CopyFileOnName outFolder, "test.txt" ' каталог и маски файлов для копирования
  WScript.Echo "Готово."
Else
  WScript.Echo "Не найден один из путей " & outFolder & " " & "ИЛИ" & " " & inFolder
End If
WScript.Quit(0)
 
Function CopyFileOnName(s, sMask)
  Dim oFld, iFld, arrMask, v, i, num
  num = 0
  Set oFld = oFSO.GetFolder(s)
  Set iFld = oFSO.GetFolder(inFolder)
  arrMask = Split(LCase(sMask), " ")
  For Each v In oFld.Files
    For i = LBound(arrMask) To UBound(arrMask)
      If LCase(oFSO.GetFileName(s & "\" & v.Name)) = arrMask(i) Then
        v.Copy(iFld & "\" & v.Name), True
		num = num + 1
        Exit For
      End If
    Next
  Next
WScript.Echo "Обновление прошло успешно. Скопировано " & num & " файлов."
End Function



Также хотелось бы узнать как сделать чтобы имена файлов в массив пользователь вводил сам с клавиатуры.
...
Рейтинг: 0 / 0
03.09.2013, 22:02
    #38385977
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
авторv.Copy Не то юзаете. Объект FileSystemObject. Метод CopyFile
fso.CopyFile Source, Destination[, OverwriteFiles]
Выполняет копирование одного или нескольких файлов с одного места на другое, в том числе и с применением шаблонов (*, !).
...
Рейтинг: 0 / 0
04.09.2013, 09:41
    #38386159
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
AndreyMpавторv.Copy Не то юзаете. Объект FileSystemObject. Метод CopyFile
fso.CopyFile Source, Destination[, OverwriteFiles]
Выполняет копирование одного или нескольких файлов с одного места на другое, в том числе и с применением шаблонов (*, !).

Спасибо за ответ я попробую использовать fso.CopyFile Source, Destination[, OverwriteFiles] хотя согласно информации сайта согласно информации сайта FSO имеет два метода для перемещения, копирования и удаления файлов:

Переместить файл File.Move или FileSystemObject.MoveFile
Скопировать файл File.Copy или FileSystemObject.CopyFile
Удалить файл File.Delete или FileSystemObject.DeleteFile

Я конечно могу и ошибаться ибо VBS только начал изучать. А вот касательно применения шаблонов, можете объяснить по подробнее или дать ссылку где почитать.
...
Рейтинг: 0 / 0
08.09.2013, 12:54
    #38390276
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
авторFSO имеет два метода для перемещения, копирования и удаления файловВ этом Вы фбсолютно правы, но первый не позволяет скопировать несколько файлов, использовать шаблоны в отличие от второго.
...
Рейтинг: 0 / 0
08.09.2013, 13:04
    #38390279
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Шаблон - типа fso.CopyFile "c:\boot.*", "d:\"
...
Рейтинг: 0 / 0
27.02.2014, 14:36
    #38574210
Blinok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Господа, еще вопрос по этой теме: как скопировать в ту же папку где он лежит?
то есть мне нужно что бы к примеру он "C:\1.txt" скопировал и получилось "C:\1(1).txt" потом 1(2).txt и так далее при каждом запуске
...
Рейтинг: 0 / 0
27.02.2014, 14:51
    #38574245
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Перебрать файлы, подходящие по названию, найти первый свободный номер (или следующий за последним занятым номером, это не одно и то же), скопировать файл с указанием нового имени.
Удобно использовать регулярные выражения (vbscript.regexp).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.06.2015, 10:14
    #38975893
Aceko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
нужна помощь, мне нужен скрипт который по маске папки будет перемещать ее в определенную папку к примеру каждый бекап начала месяца 20??-0?-01_00-00
...
Рейтинг: 0 / 0
04.06.2015, 11:17
    #38975975
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Тебе нужна помощь или готовый скрипт?
Если первое - где то, что ты САМ сделал УЖЕ?
Если второе - то каков бюджет мероприятия?
...
Рейтинг: 0 / 0
04.06.2015, 11:28
    #38975988
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на VBS копировать файлы ?
Почитайте топик с начала, может поможет. А так
Код: vbnet
1.
.MoveFolder
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как на VBS копировать файлы ? / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]