my $exe = "'C:/Program Files/Common Files/executable.exe'";
if(! -X $exe) {
print "exe file not found";
exit 3;
}
my $cmd = $exe.' status';
@lines = qx ( $cmd );
我的问题是我可以很好地执行这个命令,但我不能为我的生活弄清楚如何检查exe文件的存在。任何提示?我试过不同种类的引号,-f,-X,-e ......什么都行不通!非常感谢任何帮助。
答案 0 :(得分:3)
-f
运算符可以正常工作,但文件名中包含多余的引号。
当然-f
在Windows上告诉你的是该文件存在并且不是一个目录,但可能只是你需要的。
其他 double 引号确实需要放在可执行文件名称的命令行中,但最好在此处执行此操作你需要它们,而不是更早。试试这个:
my $exe = 'C:/Program Files/Common Files/executable.exe';
unless (-f $exe) {
print "exe file not found";
exit 3;
}
my $cmd = qq("$exe" status);
my @lines = qx($cmd);