|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Бекап |
|
VBS/WSH/JS - [решено] Бекап
|
Ветеран Сообщения: 530 |
Профиль | Отправить PM | Цитировать Здравствуйте, подскажите, хотел сделать бекап файла... файл один.
Как можно скопировать файл в определенную папку, указав имя на новой копии в виде имени файл, плюс добавить к имени дату и время? Этот файл я добавлю в диспетчер заданий виндовс и будут делаться резервные копии |
|
Отправлено: 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 Сообщения: 1167
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:38, 14-09-2018 | #3 |
Ветеран Сообщения: 530
|
Профиль | Отправить PM | Цитировать Спасибо за ответы. Нужна просто функция копирования файла, и чтобы к имени добавлялась дата и время. (к имени копии, а не оригинала)
Еще, чтобы это все происходило не заметно для глаз пользователя (чтобы черные, синие окна не мелькали, никаких сообщений не выскакивало). Я поэтому и хотел vbs файлик.. когда он выполняется, никаких окон черных как в BAT не мелькает. |
Отправлено: 18:52, 14-09-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
Цитата Alexander_88:
Цитата:
|
||||
Отправлено: 19:02, 14-09-2018 | #5 |
Ветеран Сообщения: 530
|
Профиль | Отправить PM | Цитировать А я ничего не перепутал? Пути к файлам в этой строке вводить?
Что то не получается, после запуска появляется сообщение от "Windows Script Host", нажимаю ОК, и все.. копии нету |
Отправлено: 21:01, 14-09-2018 | #6 |
Ветеран Сообщения: 2703
|
Профиль | Отправить 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 |
Ветеран Сообщения: 530
|
Профиль | Отправить 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 |
|