URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8814
[ Назад ]

Исходное сообщение
"(Perl) Проблема с кодировкой командной строки Windows "

Отправлено inot , 22-Июл-10 13:30 
Не могу разобраться в чем проблема.. Я хочу собрать все вложенные папки в массив... На винде так не делал не разу, столкнулся и в тупике. Листинг такой

my $dir="C:\\Отделы\\Сервис";
my @dirlist=`dir /AD /S /B $dir`;
foreach my $dirlist (@dirlist) {
print $dirlist . "\n";
}

Ошибка вот этой команды `dir /AD /S /B $dir` - The system cannot find the file specified.

Если вывести переменную $dir, то там вместо русских букв будет тарабарщина.

Что нужно доделать? Где я не прав?


Содержание

Сообщения в этом обсуждении
"(Perl) Проблема с кодировкой командной строки Windows "
Отправлено NuINu , 22-Июл-10 22:27 
>[оверквотинг удален]
>foreach my $dirlist (@dirlist) {
>print $dirlist . "\n";
>}
>
>Ошибка вот этой команды `dir /AD /S /B $dir` - The system
>cannot find the file specified.
>
>Если вывести переменную $dir, то там вместо русских букв будет тарабарщина.
>
>Что нужно доделать? Где я не прав?

ты не прав в том что выбрал виндовс как ос для которой надо писать программы.
а что бы не было тарабарщины в место русских букв изучи вопрос о возможных кодировках, в том числе и о кодировке которую желает видеть команда дир, и переведи в нее указанное тобой название.(тут есть несколько целевых кодировок кстати(кодировка для дир, кодировка исходная, кодировка для вывода)
для начала почитай perldoc Encode


"(Perl) Проблема с кодировкой командной строки Windows "
Отправлено inot , 22-Июл-10 23:57 

>
>ты не прав в том что выбрал виндовс как ос для которой
>надо писать программы.

Я думаю, что тебя это не должно трогать. И если появилась надобность писать под винду, значит написать такое под линукс нет никакой возможности.
>а что бы не было тарабарщины в место русских букв изучи вопрос

Вопрос я изучил, проблему которую решить не получается, выложил на форум..

>для начала почитай perldoc Encode

для начала прочитай вопрос. Чтобы не было этого бесполезного флуда с твоей стороны


"(Perl) Проблема с кодировкой командной строки Windows "
Отправлено Andrey Mitrofanov , 23-Июл-10 09:23 
>Что нужно доделать? Где я не прав?

http://www.opennet.me/openforum/vsluhforumID8/6517.html#7
http://www.opennet.me/openforum/vsluhforumID3/68567.html#73

---Во всём. Виноват. Майкрософт.


"(Perl) Проблема с кодировкой командной строки Windows "
Отправлено inot , 23-Июл-10 09:28 
>>Что нужно доделать? Где я не прав?
>
>http://www.opennet.me/openforum/vsluhforumID8/6517.html#7
>http://www.opennet.me/openforum/vsluhforumID3/68567.html#73
>
>---Во всём. Виноват. Майкрософт.

Незнаю причем тут микрософт, нужно быть сильно недалеким чтобы в чем-то его винить. Проблема решилась добавлением кавычек.

my @dirlist=`dir /AD /S /B \"$dir\"`;

Вот так. Микрософт как всегда оказался не причем )


"(Perl) Проблема с кодировкой командной строки Windows "
Отправлено Andrey Mitrofanov , 23-Июл-10 10:00 
>Незнаю причем тут микрософт, нужно быть сильно недалеким
>#>>Если вывести переменную $dir, то там вместо русских букв будет тарабарщина.

Казалось бы, при чём тут Лужков!.. и кавычки? Впрочем, надо, так надо!


"(Perl) Проблема с кодировкой командной строки Windows "
Отправлено NuINu , 26-Июл-10 20:33 
>[оверквотинг удален]
>>http://www.opennet.me/openforum/vsluhforumID3/68567.html#73
>>
>>---Во всём. Виноват. Майкрософт.
>
>Незнаю причем тут микрософт, нужно быть сильно недалеким чтобы в чем-то его
>винить. Проблема решилась добавлением кавычек.
>
>my @dirlist=`dir /AD /S /B \"$dir\"`;
>
>Вот так. Микрософт как всегда оказался не причем )

ну ты просто утер мне нос!
вот только интересно, проблему тарабарщины кавычки тоже решают?