Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт создающий папку с тек.датой и перемещ. в нее файлы

Ответить
Настройки темы
CMD/BAT - Скрипт создающий папку с тек.датой и перемещ. в нее файлы

Аватара для Maza11

Старожил


Сообщения: 284
Благодарности: 2

Профиль | Отправить PM | Цитировать


Есть сетевая папка в которую сохраняются скриншоты формата "Snap - 2017-02-06 09.45.00.png" и так в течении дня с разным временем, каждый день.
За день- 60-100 скриншотов. За неделю накапливается слишком много скриншотов. Надо это упорядочивать.
Нужно настроить планировщик на выполнения скрипта BAT файла, который бы создавал папку с текущей датой и в нее перемещал скриншоты за сегодняшний день.

Отправлено: 13:01, 08-02-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Maza11, а если «в текущий день» ему по каким-то причинам не удастся отработать — что тогда? Скриншоты так и останутся «висеть». Надо не с текушей датой создавать, а перебирать все скриншоты, по шаблону имени создавать папку (если ещё не создана) и перемещать в неё скриншот. Я бы делал так.

Отправлено: 13:25, 08-02-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Maza11

Старожил


Сообщения: 284
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
а если «в текущий день» ему по каким-то причинам не удастся отработать — что тогда? Скриншоты так и останутся «висеть». Надо не с текушей датой создавать, а перебирать все скриншоты, по шаблону имени создавать папку (если ещё не создана) и перемещать в неё скриншот. Я бы делал так. »
Вы правы, но создание шаблона наверно сложно, я со скриптами совсем не дружу. Поэтому составил задание попроще.

Отправлено: 13:36, 08-02-2017 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить 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


Аватара для Maza11

Старожил


Сообщения: 284
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Путь к исходной папке указывается аргументом скрипта. »
что такое аргумент скрипта, в свойствах задания в планировщике указать C:\move.vbs "\\Backup\box\" ???

Отправлено: 14:11, 08-02-2017 | #5


Аватара для Maza11

Старожил


Сообщения: 284
Благодарности: 2

Профиль | Отправить PM | Цитировать


в задании прописал C:\move.vbs "\\Backup\box\"
ругается
Usage: cscript.exe //nologo "move.vbs" <Source folder>
как указать ему папку ?

Отправлено: 15:42, 08-02-2017 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Сделайте экспорт задания в xml и выложите сюда.

Отправлено: 16:11, 08-02-2017 | #7


Аватара для Maza11

Старожил


Сообщения: 284
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Сделайте экспорт задания в xml и выложите сюда. »
у меня Win XP, не нашел я там экспорта заданий в xml
если на скрипт перетянуть папку с файлами, то он отрабатывает. Внутри создались папки с датами и файлики переместились, круто. Только осталось с планировщиком разобраться/ Может он UNC путь не понимает, т.к. перетягиванием папки на скрипт я занимался локально.
скрин



Отправлено: 16:45, 08-02-2017 | #8


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Maza11,
в планировщике в папке где задание на самой строке задания правой клавишей мыши и выбрать в меню пункт экспортировать, разве нет такого в XP?

Отправлено: 20:17, 08-02-2017 | #9


Ветеран


Contributor


Сообщения: 2732
Благодарности: 1698

Профиль | Отправить 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"
	)
)
Настройте планировщик на его выполнение, в XP, мне помнится, это не проблема, сделайте повтор его исполнения с нужной Вам периодичностью, хоть сто раз в день, хоть раз в неделю, месяц итд. Не на чем вспомнить XP. Пытаюсь по Вашему скрину: кажется, в панели управления найти назначенные задания -> кнопка (иконка?) новое задание ->выдаст окно поиска исполнимого файла. Затем настроите расписание. Там всё понятно

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 08-02-2017 в 22:10.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:58, 08-02-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт создающий папку с тек.датой и перемещ. в нее файлы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] как в 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




 
Переход