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

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

cyber_ua 16-02-2012 23:11 1860509

Сортировка файлов по расширению
 
написал батник который переберяет все файлы в папке и сортирует по розширению , все работает !
но проблема в том что он не работает с файла подписаными на русском!
вот код:

@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)

Iska 17-02-2012 00:47 1860553

cyber_ua, зачем Вам:
Код:

chcp 1251
второй строкой пакетного файла?

cyber_ua 17-02-2012 01:05 1860562

чтоб русский текст можно было юзать!

Iska 17-02-2012 01:31 1860570

Цитата:

Цитата cyber_ua
чтоб русский текст можно было юзать! »

… используйте редактор, умеющий работать и сохранять пакетные файлы в кодировке ОЕМ/866: редактор Far Manager'а, Bred2/Bred3, AkelPad и т.п.

cyber_ua 17-02-2012 01:31 1860572

понял попробую!

скачал AkelPad а в чем разница в действиях с блокнотом?

Iska 18-02-2012 04:52 1861224

Цитата:

Цитата cyber_ua
а в чем разница в действиях с блокнотом? »

Блокнот не поддерживает прозрачную работу с такой кодировкой.

o3epo 07-10-2012 00:17 2000677

А как сделать, что бы при сортировке при совпадении имён файлы автоматически переименовывались, убрать точку в началах имён папок и имена папок были заглавными буквами?

Iska 07-10-2012 03:42 2000735

Цитата:

Цитата o3epo
А как сделать… »

Ну, и — причём тут сортировка?

Foreigner 07-10-2012 16:22 2000897

Цитата:

убрать точку в началах имён папок и имена папок были заглавными буквами
Код:

@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

roma35 07-10-2012 23:16 2001122

Цитата:

Цитата o3epo
и имена папок были заглавными буквами »

Код:

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"


Время: 23:23.

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