Perl系统访问被拒绝

时间:2011-02-15 13:40:27

标签: perl system

我作为管理员在Windows计算机上运行以下内容

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

输出是拒绝访问。在不创建文件的情况下运行tracert工作正常。那么为什么我不能在现有的netmon目录中创建文件。我可以完全访问该目录。

有人能指出我正确的方向吗?感谢

3 个答案:

答案 0 :(得分:7)

在Perl中,反斜杠(\)是双引号内的特殊字符,用于“转义”其他特殊字符或指定其他不可取消的字符。您的示例中包含的序列"\n""\t"分别用于生成换行符和制表符。

要在双引号内生成文字反斜杠字符,我们使用两个连续的反斜杠字符,所以:

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

将产生您想要的结果。

Perl将单引号括起来的字符串('')与双引号区别对待。在单引号内,\不是一个特殊字符(实际上,它仍然有点特殊,但比双引号内部特别少),所以你也可以把你的表达式编写为:

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

答案 1 :(得分:2)

如果您在路径中使用\,则需要加倍:

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

答案 2 :(得分:0)

或者你可以改为使用斜杠:

 system('tracert 192.168.63.1 > d:/netmon/test.txt');