![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Бекап |
|
VBS/WSH/JS - [решено] Бекап
|
Ветеран Сообщения: 558 |
Здравствуйте, подскажите, хотел сделать бекап файла... файл один.
Как можно скопировать файл в определенную папку, указав имя на новой копии в виде имени файл, плюс добавить к имени дату и время? Этот файл я добавлю в диспетчер заданий виндовс и будут делаться резервные копии ![]() |
|
Отправлено: 16:24, 14-09-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Alexander_88, ничего не понятно.
Вам что-то такое
Option Explicit Dim strSourceFile Dim strDestFolder Dim objFSO Dim dtNow Dim strNewFileName If WScript.Arguments.Count = 2 Then strSourceFile = WScript.Arguments.Item(0) strDestFolder = WScript.Arguments.Item(1) Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strSourceFile) Then If objFSO.FolderExists(strDestFolder) Then dtNow = Now() strNewFileName = _ objFSO.GetBaseName(strSourceFile) & _ "_" & _ Right("0000" & CStr(Year(dtNow)), 4) & _ Right("00" & CStr(Month(dtNow)), 2) & _ Right("00" & CStr(Day(dtNow)), 2) & _ "_" & _ Right("00" & CStr(Hour(dtNow)), 2) & _ Right("00" & CStr(Minute(dtNow)), 2) & _ Right("00" & CStr(Second(dtNow)), 2) & _ "." & _ objFSO.GetExtensionName(strSourceFile) objFSO.CopyFile strSourceFile, objFSO.BuildPath(strDestFolder, strNewFileName), True Else WScript.Echo "Can't find destination folder [" & strDestFolder & "]." WScript.Quit 3 End If Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 2 End If Set objFSO = Nothing Else WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file> <Destination folder>" WScript.Quit 1 End If WScript.Quit 0 ![]() |
Отправлено: 17:39, 14-09-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:38, 14-09-2018 | #3 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать Спасибо за ответы. Нужна просто функция копирования файла, и чтобы к имени добавлялась дата и время. (к имени копии, а не оригинала)
Еще, чтобы это все происходило не заметно для глаз пользователя (чтобы черные, синие окна не мелькали, никаких сообщений не выскакивало). Я поэтому и хотел vbs файлик.. когда он выполняется, никаких окон черных как в BAT не мелькает. |
Отправлено: 18:52, 14-09-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
Цитата Alexander_88:
Цитата:
|
||||
Отправлено: 19:02, 14-09-2018 | #5 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать А я ничего не перепутал? Пути к файлам в этой строке вводить?
Что то не получается, после запуска появляется сообщение от "Windows Script Host", нажимаю ОК, и все.. копии нету |
Отправлено: 21:01, 14-09-2018 | #6 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Alexander_88,
Вот вариант vbs+wmi
FileIn = "Z:\Box_In\rfpro180408.xlsm" DirOut = "Z:\Box_Out" Set WArg = WScript.Arguments If WArg.Count = 2 Then FileIn = WArg.Item(0) DirOut = WArg.Item(1) End If On Error Resume Next Set File = GetObject("winMgmts:CIM_DataFile.Name='" + Replace(FileIn, "\", "\\") + "'") If Err.Number <> 0 Then WScript.Echo "File:" + vbCrLf + FileIn + vbCrLf + vbCrLf +"Error" + vbCrLf + Err.Description WScript.Quit 1 End If NewName = Mid(File.LastModified, 1, 14) With CreateObject("Scripting.FileSystemObject") NewName = DirOut + "\" + .GetBaseName(FileIn) + " " + NewName + "." + .GetExtensionName(FileIn) A = .CopyFile(FileIn, NewName, True) End With If Err.Number <> 0 Then WScript.Echo "In File:" + vbCrLf + FileIn + vbCrLf + vbCrLf + "Out Folder:" + vbCrLf + DirOut + vbCrLf + vbCrLf + "Error" + vbCrLf + Err.Description WScript.Quit 2 End If On Error GoTo 0 ' WScript.Echo "Script completed successfully" WScript.Quit 0 Wscript //NoLogo "Z:\я180914.vbs" "Z:\Муз\108_Бригада_С\12 - Скорый поезд придет в 6 часов.mp3" "Z:\Box_Out" Wscript //NoLogo "Имя скрипта" "Имя копируемого файла" "Имя выходной папки" Если скрипт запускается без аргументов, то возьмутся данные из явно прописанных путей в самом скрипте |
------- Последний раз редактировалось megaloman, 14-09-2018 в 21:43. Отправлено: 21:32, 14-09-2018 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
Вводить надо здесь: Цитата Alexander_88:
![]() 2
Для начала таки рекомендую опробовать работу без параметра //b — на предмет возможных ошибок. Затем, если всё будет нормально, можете его добавить. |
||
Отправлено: 21:39, 14-09-2018 | #8 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать Спасибо, получилось. Я параметр bb не добавлял, никаких окон не всплывало, может его и не нужно добавлять или лучше добавить?
И еще добавлять надо и в файле vbs и в диспетчере заданий в аргументах? У меня сейчас файл (нижние строки) выглядит так. |
Отправлено: 23:08, 14-09-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
Цитата Alexander_88:
Цитата Alexander_88:
Цитата Alexander_88:
|
||||
Отправлено: 23:34, 14-09-2018 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Бекап | Mr.Redder | Microsoft Windows 7 | 3 | 21-08-2017 22:13 | |
Восстановление - Бекап выбранных папок - ПО | YDen | Программное обеспечение Windows | 4 | 21-04-2015 08:34 | |
2008 R2 - Бекап | 3DpacTe | Windows Server 2008/2008 R2 | 2 | 21-08-2014 12:24 | |
CMD/BAT - Бекап | Andrey86 | Скриптовые языки администрирования Windows | 0 | 31-05-2012 10:28 | |
Как сделать Бекап? | Falcon1 | Хочу все знать | 3 | 09-06-2003 22:12 |
|