Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Ликбез по синтаксису пакетных файлов 
Author Message
MVV



PostPosted: Sun Nov 21, 2010 03:11    Post subject: Reply with quote

Кто работал с командой for и списками файлов с панели тотала, знает, что тотал сохраняет файл в кодировке 1251, а консольные команды работают с кодировкой 866, что приводит к тому, что они не могут найти файлы с именами, содержащими русские буквы, прочитанными из файлов списка командой for.

Нашел хитрый способ передавать списки имен файлов из панели тотала в батник для обработки командой for, который работает и с русскими буквами. В параметрах кнопки используем %WF или %WL, а синтаксис команды for в таком случае будет следующим (напрямую она не умеет читать файлы в Юникоде):
Code:
for /f "usebackq delims=" %%f in (`type %1`) do @echo [%%f]
(здесь %1 обозначает путь к файлу списка)

То есть, вызывается команда type, выводя юникодный файл, при этом приводя его к нужной кодировке, а далее команда for читает этот вывод, уже корректно работая с длинными русскими именами.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group