我作为管理员在Windows计算机上运行以下内容
system("tracert 192.168.63.1 > d:\netmon\test.txt");
输出是拒绝访问。在不创建文件的情况下运行tracert工作正常。那么为什么我不能在现有的netmon目录中创建文件。我可以完全访问该目录。
有人能指出我正确的方向吗?感谢
答案 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');