我想从我的perl脚本运行一个exe,它不在我的perlscript存在的同一目录中。以及该目录不在系统PATH中。如何在perl中设置路径并运行该exe。 我试着设置env,但它没有用。
日Thnx, KAS
答案 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);