|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт создающий папку с тек.датой и перемещ. в нее файлы |
|
|
CMD/BAT - Скрипт создающий папку с тек.датой и перемещ. в нее файлы
|
Старожил Сообщения: 284 |
Есть сетевая папка в которую сохраняются скриншоты формата "Snap - 2017-02-06 09.45.00.png" и так в течении дня с разным временем, каждый день.
За день- 60-100 скриншотов. За неделю накапливается слишком много скриншотов. Надо это упорядочивать. Нужно настроить планировщик на выполнения скрипта BAT файла, который бы создавал папку с текущей датой и в нее перемещал скриншоты за сегодняшний день. |
|
Отправлено: 13:01, 08-02-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Maza11, а если «в текущий день» ему по каким-то причинам не удастся отработать — что тогда? Скриншоты так и останутся «висеть». Надо не с текушей датой создавать, а перебирать все скриншоты, по шаблону имени создавать папку (если ещё не создана) и перемещать в неё скриншот. Я бы делал так.
|
Отправлено: 13:25, 08-02-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 13:36, 08-02-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать На WSH:
Скрытый текст
Option Explicit
Dim strSourceFolder
Dim objFSO
Dim objFile
Dim strDestFolder
If WScript.Arguments.Count = 1 Then
strSourceFolder = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strSourceFolder) Then
With WScript.CreateObject("VBScript.RegExp")
.Pattern = "^Snap - (\d{4}-\d{2}-\d{2}) \d{2}\.\d{2}\.\d{2}\.png$"
.IgnoreCase = True
For Each objFile In objFSO.GetFolder(strSourceFolder).Files
If .Test(objFile.Name) Then
strDestFolder = objFSO.BuildPath(strSourceFolder, .Execute(objFile.Name).Item(0).Submatches(0))
If Not objFSO.FolderExists(strDestFolder) Then
objFSO.CreateFolder strDestFolder
End If
objFile.Move strDestFolder & "\"
End If
Next
End With
Else
WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
WScript.Quit 2
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>"
WScript.Quit 1
End If
WScript.Quit 0
Путь к исходной папке указывается аргументом скрипта. |
Отправлено: 13:53, 08-02-2017 | #4 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Путь к исходной папке указывается аргументом скрипта. » что такое аргумент скрипта, в свойствах задания в планировщике указать C:\move.vbs "\\Backup\box\" ??? |
|
Отправлено: 14:11, 08-02-2017 | #5 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать в задании прописал C:\move.vbs "\\Backup\box\"
ругается Usage: cscript.exe //nologo "move.vbs" <Source folder> как указать ему папку ? |
Отправлено: 15:42, 08-02-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Сделайте экспорт задания в xml и выложите сюда.
|
Отправлено: 16:11, 08-02-2017 | #7 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Цитата Iska:
если на скрипт перетянуть папку с файлами, то он отрабатывает. Внутри создались папки с датами и файлики переместились, круто. Только осталось с планировщиком разобраться/ Может он UNC путь не понимает, т.к. перетягиванием папки на скрипт я занимался локально. скрин
![]() |
|
Отправлено: 16:45, 08-02-2017 | #8 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Maza11,
в планировщике в папке где задание на самой строке задания правой клавишей мыши и выбрать в меню пункт экспортировать, разве нет такого в XP? |
Отправлено: 20:17, 08-02-2017 | #9 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать Вот CMD-скрипт
@Echo Off Set "BoxIn=\\TOSHIBA\Test1" Set "BoxOut=\\TOSHIBA\Test1" Set "Mask=Snap - 20??-??-?? ??.??.??.png" FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%Mask%" /b /A:-D 2^>nul`) DO ( FOR /F "usebackq tokens=3 delims= " %%d IN ('%%f') DO ( If Not Exist "%BoxOut%\%%d" Md "%BoxOut%\%%d" Copy "%BoxIn%\%%f" "%BoxOut%\%%d\" >nul &&Del "%BoxIn%\%%f" ) ) |
------- Последний раз редактировалось megaloman, 08-02-2017 в 22:10. Отправлено: 20:58, 08-02-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] как в Total Commander создать папку с текущей датой? | man1 | Хочу все знать | 1 | 22-05-2015 08:28 | |
VBS/WSH/JS - Перемещение файлов в папку со вчерашней датой | Chingiz87 | Скриптовые языки администрирования Windows | 0 | 15-03-2015 15:53 | |
MySQL - Помогите написать скрипт, создающий отчёт из нескольких таблиц MySQL | RasKolbas | Программирование и базы данных | 2 | 15-06-2013 17:34 | |
CMD/BAT - [решено] копирование файла в папку с датой | foma24 | Скриптовые языки администрирования Windows | 5 | 16-08-2012 12:23 | |
CMD/BAT - [решено] BAT-ник, создающий папку с текущим именем пользователя и копирующий в нее файл | Sirius9764 | Скриптовые языки администрирования Windows | 4 | 03-10-2011 19:34 |
|