Компьютерный форум 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=261744)

Anton23 03-06-2013 01:08 2161121

Проблема с кириллицей
 
Здравствуйте.Имеется bat-скрипт для копирования файлов и папок:

Код:

Echo off&chcp 866&Title C O P Y & Cls
set inputdir=%1
set mask=%2
set outdir=%3
if "%mask%"=="" set mask=*.*
if "%outdir%"=="" set outdir=%CD%
set /p inputdir=Что копировать?
set /p mask=Введите маску:
set /p outdir=Куда копировать?
echo d| xcopy "%inputdir%\%mask%" "%outdir%"\"download" /s/c/h/n/y/

Проблема в том что у полученных копий файлов и папок в имени вместо кириллицы иероглифы.Сам скрипт написан в AkelPad'е и сохранён в кодировке DOS-866.

Пробовал подставлять в начале скрипта и chcp 1251.результат такой же.Погуглив,находил вот это:

Код:

reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName /t REG_SZ /d "Lucida Console" /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontFamily /t REG_DWORD /d 0x0000036 /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontSize /t REG_DWORD /d 0x000c0000 /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontWeight /t REG_DWORD /d 0x0000190 /f

но и это не помогло.Знаю что где-то что-то не дописал или ошибся.Что посоветуете?заранее спасибо за помощь.

Iska 03-06-2013 01:58 2161136

«chcp 866» лишнее — это и так кодировка по умолчанию. Кстати, что отображает пустая «chcp» в «чистой» командной строке?

Цитата:

Цитата Anton23
Проблема в том что у полученных копий файлов и папок в имени вместо кириллицы иероглифы. »

Покажите скриншоты исходных и результирующих файлов и папок.

Цитата:

Цитата Anton23
Погуглив,находил вот это: »

«Это» отвечает за шрифт в окне консоли «cmd.exe».

sunnykey 03-06-2013 06:06 2161157

Цитата:

Цитата Anton23
Сам скрипт написан в AkelPad'е и сохранён в кодировке DOS-866. »

Попробуй использовать Notepad++
Или на powershell переходить;)

Petya V4sechkin 03-06-2013 07:30 2161167

Anton23, в скрипте ошибок не видно.
Цитата:

в имени вместо кириллицы иероглифы
Куда/откуда копируете? Сетевой ресурс с UNIX-like + Samba?

Foreigner 03-06-2013 07:43 2161169

Цитата:

Цитата Anton23
но и это не помогло »

А просто в настройках окошка командной строки выставить "Lucida Console" нельзя? Если нужного шрифта нет то его можно добавить:
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]
"0"="Lucida Console"
"00"="Consolas"
"000"="Courier New Cyr"


Anton23 03-06-2013 10:14 2161232

Цитата:

Цитата Iska
Кстати, что отображает пустая «chcp» в «чистой» командной строке? »

Текущая кодовая страница: 1251

Цитата:

Цитата Iska
Покажите скриншоты исходных и результирующих файлов и папок. »



Цитата:

Цитата Petya V4sechkin
Куда/откуда копируете? Сетевой ресурс с UNIX-like + Samba? »

Всё гораздо проще) всё делается в Windows xp.скрипт нужен для работы.мелочь,а реально экономит время

p.s. видимо в начале темы немного неправильно указал.выводятся не иероглифы а названия из цифр из букв вместо кириллицы.собственно,на скринах всё видно.

Georgio 03-06-2013 10:17 2161234

Anton23, скорей всего, проблема здесь:

Цитата:

Цитата Anton23
Код:

xcopy "%inputdir%\%mask%" "%outdir%"\"download" /s/c/h/n/y/
»


Параметр /N -- зто использование коротких имен при копировании, а короткие имена с кириллицей "не дружат". Попробуйте исключить этот параметр.

Anton23 03-06-2013 10:26 2161247

Цитата:

Цитата Georgio
Параметр /N -- зто использование коротких имен при копировании, а короткие имена с кириллицей "не дружат". Попробуйте исключить этот параметр. »

Большое спасибо.всё получилось.в bat-никах не особо разбираюсь,скрипт составлял из разных кусков скриптов найденных в инете.Когда появилась проблема перепробовал всё,но вот про ключи почему-то и не подумал.Всем спасибо за помощь,вопрос решён.

Iska 03-06-2013 10:47 2161257

Цитата:

Цитата Anton23
p.s. видимо в начале темы немного неправильно указал.выводятся не иероглифы а названия из цифр из букв вместо кириллицы.собственно,на скринах всё видно. »

Ну, вот… А меня ввело-таки в заблуждение Ваше утверждение об «иероглифах» :(.


Цитата:

Цитата Anton23
Всем спасибо за помощь,вопрос решён. »

Не до конца:
Цитата:

Цитата Anton23
Текущая кодовая страница: 1251 »

Проверьте: Разное - [решено] Сбилась кодировка командной строки.


Время: 08:19.

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