Доступ к системе Perl запрещен - PullRequest
0 голосов
/ 15 февраля 2011

Я работаю на компьютере с ОС Windows под учетной записью администратора

system("tracert 192.168.63.1 > d:\netmon\test.txt");

. Выход запрещенЗапуск tracert без создания файла работает нормально.Так почему я не могу создать файл в существующей директории netmon.У меня полный доступ к этому каталогу.

Может кто-нибудь направить меня в правильном направлении.Спасибо

Ответы [ 3 ]

7 голосов
/ 15 февраля 2011

В Perl обратная косая черта (\) - это специальный символ внутри двойных кавычек, используемый для «экранирования» других специальных символов или для указания других не типизированных символов.Последовательности "\n" и "\t", содержащиеся в вашем примере, используются для создания символа новой строки и символа табуляции соответственно.

Чтобы создать буквенный символ обратной косой черты внутри двойных кавычек, мы используем двапоследовательные символы обратной косой черты, поэтому:

system("tracert 192.168.63.1 > d:\\netmon\\test.txt");

даст желаемые результаты.

Perl обрабатывает строки, заключенные в одинарные кавычки (''), в отличие от двойных кавычек.Внутри одинарных кавычек \ не является специальным символом (ну, на самом деле, он все же немного особенный, но гораздо менее особенный, чем внутри двойных кавычек), поэтому вы могли бы также написать свое выражение как:

system('tracert 192.168.63.1 > d:\netmon\test.txt');
2 голосов
/ 15 февраля 2011

Если вы используете \ на своем пути, вам нужно удвоить:

system("tracert 192.168.63.1 > d:\\netmon\\test.txt");
0 голосов
/ 15 февраля 2011

Или вместо этого вы можете использовать косую черту:

 system('tracert 192.168.63.1 > d:/netmon/test.txt');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...