Foreigner, спасибо.
Можешь пояснить нек-е нюансы, дабы во всем разобраться во всем.
1. Строка set /a feb=y%%4 Я так понимаю, это високосный год или нет, но что конкретно делает y%%4
2. Я не знаю что значит операция присвоения -=
Вообще там должны быть в 10-12месяцах, не цифры а какие-то др. символы (еще не знаю), например x y z. Но это фиг с ним. Потом сам.
CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?
-
Arttem
Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?
Цитата Arttem:
1. Строка set /a feb=y%%4 Я так понимаю, это високосный год или нет, но что конкретно делает y%%4
Это арифметическая операция, получающая остаток от деления set /a var=6%4, в батниках знак процента удваивается
Цитата Arttem:
2. Я не знаю что значит операция присвоения -=
Это сокращенный вариант от set /a var=var-2 (т.е. set /a var-=2 тоже самое)
Код:
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 тоже самое)
Код:
Код: Выделить всё
set /?-
ffs2001
Re: CMD/BAT - [решено] Как создать папку имя которой будет дата создания файла ?
Похожий вопрос:
есть туча папок с файлами внутри. Нужно пройтись по всем папкам, взять год последнего изменения каждого файла и переместить файлы по пути год изменения\имя исходной папки, в которой найден файл\файл
Долго ваял и наваял вот такое
Код:
Оно не работает.
Что не так, подскажите? А то мозги уже несколько кипят.
есть туча папок с файлами внутри. Нужно пройтись по всем папкам, взять год последнего изменения каждого файла и переместить файлы по пути год изменения\имя исходной папки, в которой найден файл\файл
Долго ваял и наваял вот такое
Код:
Код: Выделить всё
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 - [решено] Как создать папку имя которой будет дата создания файла ?
Всем спасибо 
Разобрался сам:
Код:
Думаю, кому-нибудь пригодится.

Разобрался сам:
Код:
Код: Выделить всё
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 - [решено] Как создать папку имя которой будет дата создания файла ?
Цитата 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
А как модифицировать, чтобы названия папок были не 15.05.2012, а 2012.05.15?
@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 - [решено] Как создать папку имя которой будет дата создания файла ?
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"
))