Как запустить exe присутствует в другом каталоге! - PullRequest
0 голосов
/ 15 февраля 2011

Я хочу запустить exe из моего perl-скрипта, который не находится в той же директории, где существует мой perlscript.Так же как и каталог отсутствует в системном PATH.Как установить путь в самом Perl и запустить этот исполняемый файл.Я пытался установить env, но это не сработало.

thnx, kas

Ответы [ 3 ]

3 голосов
/ 15 февраля 2011

Попробуйте использовать полный путь к вашему exe. например,

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

Вы установили свой путь так:

Чтобы получить свой ПУТЬ:

$path = $ENV{'PATH'};

Чтобы установить:

$ENV{'PATH'} = 'some/dir:another/dir';
2 голосов
/ 15 февраля 2011

Если вы знаете, где находится исполняемый файл, просто используйте путь к нему так же, как если бы вы запускали его из командной строки. В Perl:

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

или, если вы предпочитаете использовать прямые косые черты (они одинаковы с ядром Windows):

system('c:/full/path/to/exe/program.exe');
1 голос
/ 15 февраля 2011

Вам не нужно устанавливать какие-либо переменные окружения только для запуска exe. Все, что вам нужно сделать, это запустить exe-файл, используя его абсолютный путь или путь относительно каталога, в котором вы находитесь, когда выполняете сценарий perl. Например, если предположить, что это 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`;

Обновление

файл test.pl:

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

файл testpath.pl:

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