PDA

Показать полную графическую версию : Проблема с кириллицей


Anton23
03-06-2013, 01:08
Здравствуйте.Имеется 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
«chcp 866» лишнее — это и так кодировка по умолчанию. Кстати, что отображает пустая «chcp» в «чистой» командной строке?

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

Погуглив,находил вот это: »
«Это» отвечает за шрифт в окне консоли «cmd.exe».

sunnykey
03-06-2013, 06:06
Сам скрипт написан в AkelPad'е и сохранён в кодировке DOS-866. »
Попробуй использовать Notepad++
Или на powershell переходить;)

Petya V4sechkin
03-06-2013, 07:30
Anton23, в скрипте ошибок не видно.
в имени вместо кириллицы иероглифы
Куда/откуда копируете? Сетевой ресурс с UNIX-like + Samba?

Foreigner
03-06-2013, 07:43
но и это не помогло »
А просто в настройках окошка командной строки выставить "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
Кстати, что отображает пустая «chcp» в «чистой» командной строке? »

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

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

http://get.picdump.ru/13/1356/135671710007065s.jpg (http://picdump.ru/get/135671710007065) http://get.picdump.ru/13/1356/135671772096382s.jpg (http://picdump.ru/get/135671772096382)

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

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

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

Georgio
03-06-2013, 10:17
Anton23, скорей всего, проблема здесь:

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


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

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

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

Iska
03-06-2013, 10:47
p.s. видимо в начале темы немного неправильно указал.выводятся не иероглифы а названия из цифр из букв вместо кириллицы.собственно,на скринах всё видно. »
Ну, вот… А меня ввело-таки в заблуждение Ваше утверждение об «иероглифах» :(.

Всем спасибо за помощь,вопрос решён. »
Не до конца:
Текущая кодовая страница: 1251 »
Проверьте: Разное - [решено] Сбилась кодировка командной строки (http://forum.oszone.net/post-1054577.html#post1054577).




© OSzone.net 2001-2012