如何检查Windows可执行文件的存在?

时间:2012-11-12 18:31:21

标签: windows perl exe

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 ......什么都行不通!非常感谢任何帮助。

1 个答案:

答案 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);