CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Аватара пользователя
Arttem

Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Сообщение Arttem »

Foreigner, спасибо.

Можешь пояснить нек-е нюансы, дабы во всем разобраться во всем.



1. Строка set /a feb=y%%4 Я так понимаю, это високосный год или нет, но что конкретно делает y%%4

2. Я не знаю что значит операция присвоения -=



Вообще там должны быть в 10-12месяцах, не цифры а какие-то др. символы (еще не знаю), например x y z. Но это фиг с ним. Потом сам.
Аватара пользователя
Arttem

Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Сообщение Arttem »

Цитата Arttem:



1. Строка set /a feb=y%%4 Я так понимаю, это високосный год или нет, но что конкретно делает y%%4
CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?




Это арифметическая операция, получающая остаток от деления set /a var=6%4, в батниках знак процента удваивается


Цитата Arttem:



2. Я не знаю что значит операция присвоения -=
CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?




Это сокращенный вариант от set /a var=var-2 (т.е. set /a var-=2 тоже самое)



Код:
Аватара пользователя
ffs2001

Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Сообщение ffs2001 »

Похожий вопрос:



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



Долго ваял и наваял вот такое





Код:

Код: Выделить всё

FOR /R "D:\_exp" %%G in (.) DO (
	Pushd %%G
	set dirname=%%G
	     for %%a in (dir *.* /b) do (
             for /f "skip=5 tokens=1" %%w in ('dir *.* /t:w') do (
                   set year=%%w& set newdirname=%year:~6,4%& move /y %%a D:\_exp\%newdirname%\%dirname%\ )
		)
Popd )

Оно не работает.

Что не так, подскажите? А то мозги уже несколько кипят.
Аватара пользователя
ffs2001

Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Сообщение ffs2001 »

Всем спасибо Изображение

Разобрался сам:





Код:

Код: Выделить всё

FOR /D /R "D:\_exp\" %%G in (.) DO (
	Pushd %%G
		for %%a in (*.*) do (for /f "tokens=3 delims=.: " %%b in ("%%~ta") do MD "D:\_exp\%%b\%%~nxG"& copy "%%a" "D:\_exp\%%b\%%~nxG")
	Popd )

Думаю, кому-нибудь пригодится.
Аватара пользователя
seriych

Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Сообщение seriych »

Цитата gora:



@Echo OFF&Chcp 866>Nul

Set $SCR="F:\vbs_bat_js_ps\batch\D-make folder\*.*"

for %%a in (%$SCR%) do (for /f "tokens=1" %%b in ("%%~ta") do MD "%%~dpa%%~b" 2>Nul&Move "%%a" "%%~dpa%%~b")

pause
CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?




А как модифицировать, чтобы названия папок были не 15.05.2012, а 2012.05.15?
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?

Сообщение Foreigner »

seriych,



Код:

Код: Выделить всё

for %%a in (%$SCR%) do (
    for /f "tokens=1-3 delims=. " %%b in ("%%~ta") do (
        2>nul md "%%~dpa%%d.%%c.%%b"
        move "%%a" "%%~dpa%%d.%%c.%%b"
))
Ответить

Вернуться в «Скриптовые языки администрирования Windows»