如何运行另一个目录中的exe!

时间:2011-02-15 09:24:23

标签: windows perl dos

我想从我的perl脚本运行一个exe,它不在我的perlscript存在的同一目录中。以及该目录不在系统PATH中。如何在perl中设置路径并运行该exe。 我试着设置env,但它没有用。

日Thnx, KAS

3 个答案:

答案 0 :(得分:3)

尝试使用exe的完整路径。 e.g。

system("/full/path/to/app.exe");

你是否设置了这样的道路:

获取你的路径:

$path = $ENV{'PATH'};

设置它:

$ENV{'PATH'} = 'some/dir:another/dir';

答案 1 :(得分:2)

如果您知道exe文件的位置,只需使用它的路径,就像从命令行运行它一样。在Perl:

system('c:\full\path\to\exe\program.exe');

或者如果您更喜欢使用正斜杠(它们与Windows内核完全相同):

system('c:/full/path/to/exe/program.exe');

答案 2 :(得分:1)

您不需要设置任何环境变量来运行exe。您需要做的就是使用其绝对路径或相对于执行perl脚本时所在目录的路径来运行exe。例如,假设这是Windows(因为你正在谈论exe),如果你有一个目录结构,如:

C:
- dira
| - a.exe
- dirb
  - dirc
    - a.pl

并在命令提示符下运行:

C:\dirb>perl dirc\a.pl

然后在你的perl文件中,你应该使用

`C:\\dira\\a.exe`;

`..\\dira\\a.exe`;

如果您的命令提示符是:

C:\dirb\dirc>perl a.pl

然后你可以使用

`C:\\dira\\a.exe`;

`..\\..\\dira\\a.exe`;

更新

file test.pl:

$ENV{'PATH'}.= ':some/dir';
system('./testpath.pl');

file testpath.pl:

open(FILE, '>>output.txt');
print FILE $ENV{'PATH'};
close(FILE);