Скрипт: копирование файлов.
Новый пост и снова открывается новая рубрика – Скрипты. Скрипты – это мини-программы, которые могут автоматизировать некоторые рутинные действия с компьютером.
Первый скрипт будет на языке VBS (Visual Basic Script) или VBScript - это язык для написания скриптов, позволяющий легко что-нибудь “сконструировать” в обычном блокноте. Т.е для этого достаточно просто иметь ПК с установленной Windows, где уже есть всем известный блокнот. VBS достаточно прост в освоении, а особенно если Вы уже знаете Microsoft Visual Basic for Applications, частью которого он и является.
Что бы превратить обычный текстовый файл в VBS-скрипт достаточно просто изменить его расширение на VBS и все
Теперь сам скрипт: он позволяет автоматизировать копирование файлов из одной папки в другую, в моем случае это копирование всех файлов одного расширения (у меня – txt) из сетевой папки в папку, расположенную на локальном ПК. Самый распространенный способ применения этого скрипта – это обновление каких-либо программ, документов и т.д. у конкретного пользователя в сети Вашего офиса (предприятия). Скрипт можно поставить в автозагрузку или назначить задание на конкретное время выполнения в стандартном планировщике, все зависит только от Вас.
Вот текст (copy_file.vbs):
'скрипт автоматического копирования файлов
StartFolder = "\\server\1" ' откуда копируем
EndFolder = "C:\2\" ' куда копируем
'***********************************************
Set StartFiles = CreateObject("Scripting.FileSystemObject")
Set WSNetwork = CreateObject("WScript.Network")
num = 0
'копируем файлы
For Each File in StartFiles.GetFolder(StartFolder).Files
If LCase(StartFiles.GetExtensionName(File)) = "txt" Then
StartFiles.CopyFile File, EndFolder & File.Name, True
num = num+1
End If
Next
'сообщаем о результатах копирования
If Err.Number Then
WScript.Echo "Обновление прошло с ошибками. Сообщите об этом администратору."
else
WScript.Echo "Обновление прошло успешно. Скопировано " & num & " файлов."
Err.Clear
End if
Данный скрипт копирует все файлы с расширение txt из сетевой папки на локальный компьютер на диск «С» в папку «2». Обратите внимание на наличие слеша в конце адреса к папке приемнику файлов, если ее убрать, то все скопируется на диск «С» с добавлением символа «2» в начало названия каждого файла.
P.S. Не пропусти новые статьи – подпишись на обновление блога и ты всегда сможешь оперативно решить любую неисправность своего компьютера.
Похожие посты:
21 коммент. к записи “Скрипт: копирование файлов.”
Прокомментировать
Метки
Рубрики
- Server (1)
- Windows 7 (2)
- Windows XP (7)
- Бесплатное ПО (3)
- Блогинг (15)
- Вирусы (6)
- Конкурсы на блоге (2)
- Новости (16)
- Офис (2)
- Ошибки системы (6)
- Периферия (1)
- Программы (4)
- Процессы (6)
- Скрипты (5)
- Советы (23)
Архивы
- Апрель 2012 (1)
- Март 2012 (3)
- Февраль 2012 (7)
- Январь 2012 (2)
- Декабрь 2011 (5)
- Ноябрь 2011 (3)
- Октябрь 2011 (2)
- Сентябрь 2011 (3)
- Август 2011 (5)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (4)
- Март 2011 (5)
- Февраль 2011 (7)
- Январь 2011 (7)
- Декабрь 2010 (10)
- Ноябрь 2010 (7)
- Октябрь 2010 (6)
- Сентябрь 2010 (3)
- Август 2010 (9)
- Июль 2010 (1)
Комментарии
- MasterLin на Уведомление о проверке подлинности Windows.
- саша на Устройство USB не опознано.
- Алексей на Устройство USB не опознано.
- Стас на Уведомление о проверке подлинности Windows.
- Andrew на Устанавливаем Windows XP на ноутбук Toshiba Satellite L300.
[...] далее: Скрипт: копирование файлов Каждый человек, который с удовольствием и большим [...]
Спасибо помог ! Только первую строку закомментируй !
Причем тут первая строка?????
Как то в году 2003-4 попался мне скриптик vbs с возможностью исполнения его на виндовс 98 по указанному в скрипте времени.
то есть для запуска скрипта не нужно было создавать даже отложенной процедуры запуска средствами виндовс. Достаточно было указать в теле скрипта определенный код, и виндовс его принимал на исполнение самостоятельно….
С тех пор больше подобного не встречала.
Вот мне интересно, действительно такое возможно , или мне просто показалось ?
А если надо по сети сделать расылку файла в одну и туже папку всем поьзователям.
Как и где перечислить имена компов?
Андрей, пожалуй эту задачу можно решить отдельно. Постараюсь в следующем посте описать все подробно. Подпишитесь на обновление блога и Вы не пропустите пост.
А не подскажите какие строки в нем нужно изменить что бы например копировались все файлы кроме файлов с определенным разрешением
Андрей, помоему в условии достаточно поменять = на <>, т.е. если расширение неравно какому-то выбранному ( у меня это txt ), то проводим копирование. Т.о. будут скопированы все файлы кроме txt ( как у меня )
[...] просьбе читателей немного переделал предыдущий скрипт копирования файлов. Теперь при запуске все файлы из заданной папки на [...]
то ли я дурак то ли лыжи не едут не пашет че то он
Андрей, все отлично работает. Только что протестил, заменил в условии = на <> и у меня скопировались все файлы кроме тех что с расширением txt. Может имена папок не правильно указали? ошибки какие-нибудь выдает?
Напиши текст своего скрипта, я посмотрю где что не изменено.
StartFolder = “A:\” ‘ откуда копируем
EndFolder = “C:\2\” ‘ куда копируем
Set StartFiles = CreateObject(“Scripting.FileSystemObject”)
Set WSNetwork = CreateObject(“WScript.Network”)
num = 0
For Each File in StartFiles.GetFolder(StartFolder).Files
If LCase(StartFiles.GetExtensionName(File)) = “.txt” Then
StartFiles.CopyFile File, EndFolder & File.Name, True
num = num+1
End If
Next
If Err.Number Then
WScript.Echo “Обновление прошло с ошибками. Сообщите об этом администратору.”
else
WScript.Echo “Обновление прошло успешно. Скопировано ” & num & ” файлов.”
Err.Clear
End if
щас попробовал дома тоже самое скрипт ошибку не выдает просто не копирует файлы на работе тоже самое только на работе вместо диска “А” указана сетевая папка и разрешение doc
И кстати коменнтарии тоже убрал на работе
Ошибка при записи условия If LCase(StartFiles.GetExtensionName(File)) = “.txt” Then
здесь не нужна точка в указании расширения, нужно просто написать txt и все…
Подскажите что где дописать чтобы все файлы и все подпапки тоже копировались?!
Павел, уже есть пост на эту тему – . Там уже все описано.
примного благодарен! Спасибо!
хороший скрипт копирует влет, а как насчет последующего удаления их из папки отправителя?
areo, после копирования файлов в цикле If… можно подписать строчку удаления файлов:
StartFiles.DeleteFile
думаю будет достаточно.
Можно почитать еще здесь –
Добрый день. Ваш скрипт хочу использовать немного наоборот. Есть группы каталогов с файлами 2х ур-ней вложенности (месяцы и дни). Оттуда надо скопировать только файлики с расширением .xlsx. Остальное содержимое не нужно. Беда в том, что именно эти файлы названы одинаково. Не подскажете как заставить скрипт сохранять все файлы а не обновлять с перезаписью. Конечное имя значения не имеет, лишь бы все” эксели” скопировались в 1 папку. Спасибо.
Andrey, если Вам не важно имя файла, то можно их переименовывать, сразу после копирования в новую папку, например так:
StartFiles.CopyFile File, aEndFolder(i) & num & “-” & File.Name, True
т.е. здесь в имени файла в начале будет стоять номер цикла, затем тире и после имя файла.