YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Taran2ul Цитата: Тогда, примерно так: Код: @echo off setlocal enabledelayedexpansion set "fld=test" set "def=-0-" set "suf=.crtemp" set tz=10800 pushd "%fld%" for /f "delims=" %%x in ('dir /a-d/b') do ( for /f "tokens=2-4 delims=[]" %%a in ("%%x") do ( for /f "tokens=1-6 delims=-_" %%k in ("%%a") do ( call :unixtime %%k %%l %%m %%n %%o %%p var set /a var=var-tz echo ren "%%x" "!var!%def%%%b%%c%suf%" ) ) ) popd endlocal pause&exit /b :unixtime %yy% %mm% %dd% %hh% %nn% %ss% var setlocal enableextensions set yy=%1&set mm=%2&set dd=%3&set hh=%4&set nn=%5&set ss=%6 if 1%yy% lss 200 if 1%yy% lss 170 (set yy=20%yy%) else (set yy=19%yy%) set /a dd=100%dd%%%100,mm=100%mm%%%100 set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2 set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633 if 1%hh% lss 20 set hh=0%hh% set /a hh=100%hh%%%100,nn=100%nn%%%100,ss=100%ss%%%100 set /a j=j*86400+hh*3600+nn*60+ss endlocal&set %7=%j%&exit/b | в боевом режиме, "echo" необходимо удалить перед командой "ren" в переменной %fld% можно указать абсолютный или относительный путь... наличие других файлов, не подходящих под формат, здесь не учтено... если потребуется, то для команды dir надо будет составить фильтр... Добавлено: xerpal Цитата: На один уровень выше. То есть в корни этих папок рандомных. | Цитата: Чтобы остались только те файлы, которые в ggg были. | Вот, предварительное решение, более-менее универсальное: powershell Код: $fld = 'test' dir $fld -rec -inc 'ggg' -dir|%{ dir (gi $_.fullname).parent.fullname -exc 'ggg'|%{del $_.fullname -rec -force -whatif} dir $_.fullname|%{move $_.fullname (gi $_.directoryname).parent.fullname -whatif} del $_.fullname -rec -force -whatif } | в переменной $fld, можно указать корневой каталог для поиска, с абсолютным или относительным путем... В боевом режиме, все параметры -whatif, следует удалить. | Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 12:08 10-09-2018 | Исправлено: YuS_2, 13:33 10-09-2018 |
|