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

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
Как на VBS копировать файлы ?
    #32900163
petro666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо. Будем пробовать.
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #32900172
petro666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут возник ещё один вопрос. После того как я получил весь список вложенных папок, как мне потом создать этот список ?
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #32901396
petro666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё заработало. СПАСИБО.
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #32902125
petro666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как проверить возможно файл прочитать или нет ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как на VBS копировать файлы ?
    #36036123
Alex3163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня прекрасно работает этот скрипт на 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
Период между сообщениями больше года.
Как на VBS копировать файлы ?
    #38379493
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, я пытаюсь написать скрипт копирования файлов по их разрешению из папки на сервер. Я 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
Как на VBS копировать файлы ?
    #38379508
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первое, что бросилось в глаза
Код: vbnet
1.
v.Copy ("iFld"), True

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

А вообще Snak2013никак не могу понять, в чем ошибка.а мы должны угадать, в чем проблема? "Доктор, у меня болит, но я не скажу что. Лечите меня"
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38379872
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное 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
Как на VBS копировать файлы ?
    #38384272
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток у меня возник ещё вопрос касательно копирования файлов через 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
Как на VBS копировать файлы ?
    #38385977
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторv.Copy Не то юзаете. Объект FileSystemObject. Метод CopyFile
fso.CopyFile Source, Destination[, OverwriteFiles]
Выполняет копирование одного или нескольких файлов с одного места на другое, в том числе и с применением шаблонов (*, !).
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38386159
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как на VBS копировать файлы ?
    #38390276
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторFSO имеет два метода для перемещения, копирования и удаления файловВ этом Вы фбсолютно правы, но первый не позволяет скопировать несколько файлов, использовать шаблоны в отличие от второго.
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38390279
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шаблон - типа fso.CopyFile "c:\boot.*", "d:\"
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38574210
Blinok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, еще вопрос по этой теме: как скопировать в ту же папку где он лежит?
то есть мне нужно что бы к примеру он "C:\1.txt" скопировал и получилось "C:\1(1).txt" потом 1(2).txt и так далее при каждом запуске
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38574245
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перебрать файлы, подходящие по названию, найти первый свободный номер (или следующий за последним занятым номером, это не одно и то же), скопировать файл с указанием нового имени.
Удобно использовать регулярные выражения (vbscript.regexp).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как на VBS копировать файлы ?
    #38975893
Aceko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужна помощь, мне нужен скрипт который по маске папки будет перемещать ее в определенную папку к примеру каждый бекап начала месяца 20??-0?-01_00-00
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38975975
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе нужна помощь или готовый скрипт?
Если первое - где то, что ты САМ сделал УЖЕ?
Если второе - то каков бюджет мероприятия?
...
Рейтинг: 0 / 0
Как на VBS копировать файлы ?
    #38975988
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте топик с начала, может поможет. А так
Код: vbnet
1.
.MoveFolder
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как на VBS копировать файлы ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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