我正在尝试导航到一个目录,其中存储了我需要在脚本中用于生成结果的函数。但是我被卡住了,因为 Perl 无法理解我的函数位置语法(带有空格)。
这是我的代码:
$path ="D:\\AVI MEHENWAL\\PERL\\SCRIPTS\\PROJECTS\\SnmpCheck";
$snmpwalk = `$path\\SnmpWalk.exe -q -t:60 -r:$ip -v:2c -c:$comm -os:1.3.6.1.2.1.1 -op:1.3.6.1.2.1.1.9`;
print "$snmpwalk";
其中 SnmpWalk 是我的函数,位于变量 $path 中的路径中。
Perl 在运行时返回以下错误:
D:\AVI MEHENWAL\PERL\SCRIPTS\PROJECTS\SnmpCheck>perl perl_snmpwalk_v2.0.pl
'D:\AVI' is not recognized as an internal or external command,
operable program or batch file.
我该如何解决这个问题?
最佳答案
明智地使用正确的引号,这可以整理很多。单引号内的反斜杠不需要转义,除非它们是字符串中的最后一个字符,而双引号只有在它们也用作字符串定界符时才需要转义。打印时将 $snmpwalk
放在引号中也是(几乎可以肯定)错误的。
my $path = 'D:\AVI MEHENWAL\PERL\SCRIPTS\PROJECTS\SnmpCheck';
my $snmpwalk = `"$path\\SnmpWalk.exe" -q -t:60 -r:$ip -v:2c -c:$comm -os:1.3.6.1.2.1.1 -op:1.3.6.1.2.1.1.9`;
print $snmpwalk;
关于windows - 我如何让 Perl 理解导航到路径中有空格的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120211/