| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Exec() и русские буквы/пробелы в пути |
| Автор: Suppir 9.6.2011, 16:50 |
| пытаюсь с помощью exec() запустить файл, но этот файл запускается только в том случае, если путь в нему не содержит пробелов или русских букв. Как можно обойти? (под windows) Добавлено через 1 минуту и 45 секунд Как можно из нашего скрипта запустить другой perl-скрипт, если известен его адрес (содержащий пробелы) ? |
| Автор: arto 9.6.2011, 17:08 |
| # cat > "aa bb pl" #! /usr/bin/perl print "DONE\n"; # chmod +x "aa bb pl" # ./"aa bb pl" DONE # perl -le 'exec "./aa\\ bb\\ pl";' DONE # |
| Автор: Suppir 10.6.2011, 08:03 |
| ничего не понял |
| Автор: alezzz 10.6.2011, 09:03 | ||||||
есть папка, которая называется "папка папка", в ней лежит test.pl:
есть run.pl:
в run.pl кирилица в кодировке cp-1251. все работает.
|
| Автор: Сумасшедший 10.6.2011, 13:27 |
| Т.е имя файла в кавычки возьмите и в 1251 пишите кириллицу к скриптах. |
| Автор: Suppir 10.6.2011, 14:52 |
| alezzz, а если имя файла в переменной? |
| Автор: alezzz 10.6.2011, 18:06 | ||||
Вот почему так делается:
Это в ХР, в семерке перешло в папку без кавычек, но перл с семеркой не согласен. exec заменил на system, после выполнения exec ждал нажатия клавиши. |
| Автор: Suppir 13.6.2011, 13:14 |
| Последний вариант Alezzz'a работает, т.е. скрипт запускается, но при этом не получается запустить его с параметрами. |
| Автор: alezzz 13.6.2011, 19:53 | ||||||
| Точно также и с параметрами: run.pl
test.pl в "папка папка"
Два параметра, "1 2" и "3", первый параметр с пробелом, поэтому его в кавычки, второй необязательно (в данном случае) |
| Автор: Suppir 14.6.2011, 11:28 |
| alezzz, в Windows 7 дочерний скрипт запускается, но при этом интерпретатор ругается. |
| Автор: alezzz 14.6.2011, 16:02 |
| как именно ругается? я показал свой вывод, у меня все нормально. |
| Автор: Suppir 14.6.2011, 17:16 |
| Из дома еще раз гляну, чуть позже отпишусь... |