Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   файлы вида mmdd*.* - для каждой даты нужно создать каталог, скопировать, файлы (http://forum.oszone.net/showthread.php?t=140589)

milito 19-05-2009 22:03 1122737

файлы вида mmdd*.* - для каждой даты нужно создать каталог, скопировать, файлы
 
Привет, необходимо написать .bat файл, постановка задачи такая:
имеются файлы вида mmdd*.* (номера месяца и дня). Необходимо для каждой даты создать каталог, скопировать туда соответствующие файлы.

Особо трудности с первой частью задания, то есть выделить среди всех файлов файлы такого типа.

tenalex 20-05-2009 07:10 1122912

Привет!
У меня была ситуация, когда надо было записывать логины и логауты на компьютеры локально, в разные папки по датам. Т
.е. Каталог (месяц_год) - файл (день_месяц_год)

Собственно самая интересная часть - первая, преобразование даты в нужный вид.
@echo off

:: format: dd.mm.yyyy

echo %date%
set /a y=%date:~6,4%&set /a m=%date:~3,2%&set /a d=%date:~0,2%
set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16))
echo %i%
set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1
echo %i%
REM (igor_andreev)

for /f "tokens=%i% delims=/" %%a in ('
echo/Ponedelnik/Vtornik/Sreda/Chetverg/Pyztnica/Subbota/Voskresene') do set "w=%%a"
for /f "tokens=%date:~3,2% delims=/" %%a in ('
ECHO/01/02/03/04/05/06/07/08/09/10/11/12/') do set "mmm=%%a"


Дальше проще.

mkdir c:\Login(out)\%mmm%_%y%
echo Login %computername% %username% %date% %time% >> c:\Login(out)\%mmm%_%y%\%date%_datalog.txt

По хорошему первую часть можно упростить, но думаю и этот скрипт может справиться с нужными вам задачами.

Эм... почитал еще задание. Нужно пояснить задание, необходимо сделать так, чтобы бала автоматическая сортировка файлов?

milito 24-05-2009 23:32 1126717

Да, после создания автоматически копировались.
Спасибо за пример, только вот не совсем понял некоторые моменты:
set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16))
set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1
и
:: format: dd.mm.yyyy

Просто совсем недавно начал изучать.


Время: 00:51.

Время: 00:51.
© OSzone.net 2001-