Показать полную графическую версию : Сортировка файлов по расширению
cyber_ua
16-02-2012, 23:11
написал батник который переберяет все файлы в папке и сортирует по розширению , все работает !
но проблема в том что он не работает с файла подписаными на русском!
вот код:
@echo off
chcp 1251
:back
set /P path=Введите путь к папке(Пример:C:\test)
if EXIST %path% (goto next) else (echo папка не существует попробуйте еще раз
goto back)
:next
for /R %path% %%i in (*.*) do (
set r=%%~xi
set file=%%i
call:Label)
Pause
:Label
:yslov
if EXIST %path%\%r% (Move /Y %file% %path%\%r% ) else (MD %path%\%r%
goto yslov)
cyber_ua, зачем Вам:
chcp 1251
второй строкой пакетного файла?
cyber_ua
17-02-2012, 01:05
чтоб русский текст можно было юзать!
чтоб русский текст можно было юзать! »
… используйте редактор, умеющий работать и сохранять пакетные файлы в кодировке ОЕМ/866: редактор Far Manager'а, Bred2/Bred3, AkelPad и т.п.
cyber_ua
17-02-2012, 01:31
понял попробую!
скачал AkelPad а в чем разница в действиях с блокнотом?
а в чем разница в действиях с блокнотом? »
Блокнот не поддерживает прозрачную работу с такой кодировкой.
А как сделать, что бы при сортировке при совпадении имён файлы автоматически переименовывались, убрать точку в началах имён папок и имена папок были заглавными буквами?
А как сделать… »
Ну, и — причём тут сортировка?
Foreigner
07-10-2012, 16:22
убрать точку в началах имён папок и имена папок были заглавными буквами
@echo off
setlocal
1>nul chcp 1251
for /f "tokens=*" %%i in (' dir /b /ad ') do call:1 "%%i"
1>nul chcp 866
goto:eof
:1
set "name=%~1"
if "%name:~0,1%"=="." (set "name=%name:~1%")
for /f "tokens=*" %%i in (' echo %name% ^| sed "s/\(.*\)/\U\1/" ') do ren %1 "%%i"
sed (http://gnuwin32.sourceforge.net/packages/sed.htm)
и имена папок были заглавными буквами »
for /f "delims=" %%a in ('dir /b /s /ad') do for /f "tokens=3 delims=:" %%b in ('find "" ":%%~nxa" 2^>^&1') do ren "%%a" "%%b"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.