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 

Параметр %F. Как изменить кодовую страницу списка?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Wed Oct 14, 2009 11:23    Post subject: Параметр %F. Как изменить кодовую страницу списка? Reply with quote

При параметре кнопки %F список файлов создаётся в CP-1251 (WinXP-rus).
Как это изменить на CP-866 для корректной передачи в обработку CMD.exe?

Например, такая кнопка при кириллических именах не работает:
Code:
TOTALCMD#BAR#DATA
cmd /k
FOR /F "delims=\" %%i IN (%F) do COPY "%%i" "%%~i_tmp"
TotalCmd.exe
TEST


-1

 !  Avada:
Тему переношу в общие вопросы. Давайте соблюдать правила.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Wed Oct 14, 2009 12:07    Post subject: Reply with quote

GGS
А с %UF или %WF?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Wed Oct 14, 2009 14:32    Post subject: Reply with quote

Avada
Не прокатит, думаю. Это же юникод, а не ОЕМ.


Аналогичная проблема была решена тут - http://forum.wincmd.ru/viewtopic.php?p=34314#34314
VadiMGP wrote:
Твоя проблема в русских буквах. Коммандер пишет файл в кодировке Windows, а в батнике Windows предполагает, что все в кодировке ОЕМ.
Попробуй скачать http://www.gbordier.com/gbtools/download/stringconverter.exe (или что-то аналогичное) и переписать батник в виде:

Code:
c:\Tools\stringconverter.exe %1 %1.OEM /OEM
for /F "tokens=*" %%i in (%1.OEM) do c:\Tools\AuCDtect\auCDtect.exe -v -m0 "%%i" >>check.txt
del %1
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 14, 2009 14:47    Post subject: Reply with quote

Либо можно не в кнопке комнаду писать, а в батнике, в котором в начале задать:
Code:
chcp 1251 >nul

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Wed Oct 14, 2009 15:15    Post subject: Reply with quote

Batya
Уверен? По-моему это меняет только кодовую страницу самой консоли, а на чтение файлов не влияет.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 14, 2009 16:57    Post subject: Reply with quote

VadiMGP
Дык, попробуй Wink

Батник:
Code:
@echo off
chcp 1251 >nul
FOR /F "delims=\" %%i IN (%1) do COPY "%%i" "%%~i_tmp"

Вызывать с параметром %F.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Wed Oct 14, 2009 17:52    Post subject: Reply with quote

Batya
Попробовал. Да, в случае соманды copy работает. Но попробуй заменить copy на echo. Wink
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 14, 2009 17:57    Post subject: Reply with quote

VadiMGP wrote:
Но попробуй заменить copy на echo.

Поробовал. Знаю, что выдаются крокозябры, но ведь в первом посте рассматривается именно "copy".
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Wed Oct 14, 2009 18:12    Post subject: Reply with quote

У ты какой буквоед. Ну ведь явно же тестовый батник.
Кстати, в том же первом посте было спрошено как изменить кодировку файла. Razz
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Wed Oct 14, 2009 18:51    Post subject: Reply with quote

Batya
Вариант с батником работает, но не хочется иметь дополнительные файлы.
Нужна самодостаточная однострочная команда.
Вот так уже не работает:
Code:
TOTALCMD#BAR#DATA
cmd /k
chcp 1251 & FOR /F "delims=\" %%i IN (%F) do COPY "%%i" "%%~i_tmp"
TotalCmd.exe
TEST-1


-1

А ведь по сути тот же батник.
P.S. Кракозябры в окне консоли не волнуют, окно будет свёрнуто и после выполнения закрыто (cmd /c) . Сейчас просто тестовый вариант.
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Wed Oct 14, 2009 21:14    Post subject: Reply with quote

После некоторых извращений получилось так:
Code:
TOTALCMD#BAR#DATA
cmd /k echo chcp 1251>X.bat & echo FOR /F "delims=\" %%i IN (%1) do COPY "%%i" "%%i_tmp">>X.bat & echo DEL %0>>X.bat &
X.bat %F
TotalCmd.exe
TEST-2


-1

...но как-то не очень красиво. Неужели в TC нет аналогов %UF и %WF для OEM-кодировки.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Wed Oct 14, 2009 21:40    Post subject: Reply with quote

GGS wrote:
Неужели в TC нет аналогов %UF и %WF для OEM-кодировки.

Разве что %D попробовать?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 14, 2009 22:54    Post subject: Reply with quote

GGS wrote:
Нужна самодостаточная однострочная команда.

Тогда только stringconverter поможет (через &).
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Wed Oct 14, 2009 23:16    Post subject: Reply with quote

Batya wrote:
Тогда только stringconverter поможет (через &).

Я ведь уточнил - самодостаточная. В пределах штатных возможностей OS, разумеется. Без сторонних «примочек».
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Thu Oct 15, 2009 00:16    Post subject: Reply with quote

GGS wrote:
Без сторонних «примочек».

И без TC Wink

В таком случае ответ на изначальный вопрос "Как это изменить ...?" - Никак.

Могу предложить также ещё одно стороннее средство - MultiRun.vbs. Кнопка из первого поста будет такой:
Code:
TOTALCMD#BAR#DATA
%Commander_Path%\Utils\WHS\MultiRun.vbs
0 cmd /c copy <<%L>> <<%L>>_tmp
%Commander_Path%\WCMICONS.DLL,50
Тест

1
-1

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group