windows - 我如何让 Perl 理解导航到路径中有空格的目录?

标签 windows perl debugging path

我正在尝试导航到一个目录,其中存储了我需要在脚本中用于生成结果的函数。但是我被卡住了,因为 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/

相关文章:

asp.net-mvc - 我想使用 ASP.Net MVC。我的服务器是 Win 2003,它使用 IIS 6,所有这些都可以一起工作吗?

c++ - Windows 上 clang 的运行时库

即使在 Windows 上后台运行命令后,PHP 脚本仍停留在 exec 上

perl - 为什么 eq 不能处理我的字符串输入?

java - 如何在 Eclipse 中将断点切换到整个类?

ruby-on-rails - var_dump 并像 php 一样死去,在 ruby​​ on rails 中(在 ruby​​ on rails 中调试)

Windows 内存映射文件

perl - OTRS:为客户部分创建新模块

perl - 我如何找出几周前的日期?

objective-c - 有条件的 NSLog,不降低性能