windows - Sådan kører du en exe-gave i en anden mappe!

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil køre en exe fra mit Perl script, som ikke er i samme mappe, hvor mit Perlscript eksisterer. Samt mappen er ikke i systemet PATH. Sådan indstilles stien i Perl selv og løber den Exe.
Jeg forsøgte at indstille env, men det fungerede ikke.


thnx,
kas

Bedste reference


Prøv at bruge den fulde sti til din exe. f.eks.


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


Har du sat din vej som denne:


For at få din PATH:


$path = $ENV{'PATH'};


For at indstille det:


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

Andre referencer 1


Hvis du ved, hvor exe-filen er, skal du bare bruge stien til den samme, som hvis du kørte den fra kommandolinjen. I Perl:


system('c:fullpath	oexeprogram.exe');


eller hvis du foretrækker at bruge skråstreger fremad (de er alle de samme til Windows-kernen):


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

Andre referencer 2


Du behøver ikke at angive miljømæssige variabler for at køre en exe. Alt du skal gøre er at køre exe'en ved hjælp af den absolutte sti eller en sti i forhold til den mappe, du er i, når du udfører perl-scriptet. dette er Windows (da du taler om en exe), hvis du har en mappestruktur som:


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


og ved din kommandoprompt kører du:


C:dirb>perl dirca.pl


Så i din perl-fil skal du bruge enten


`C:\dira\a.exe`;


eller


`..\dira\a.exe`;


Hvis din kommandoprompt er:


C:dirbdirc>perl a.pl


så kan du bruge


`C:\dira\a.exe`;


eller


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


Opdater


fil test.pl:


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


fil testpath.pl:


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