Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何在另一个目录中运行exe!_Windows_Perl_Dos - Fatal编程技术网

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

Windows 如何在另一个目录中运行exe!,windows,perl,dos,Windows,Perl,Dos,我想从perl脚本运行一个exe,它不在perlscript所在的目录中。以及该目录不在系统路径中。如何在perl中设置路径并运行该exe。 我试着设置env,但没用 thnx, kas尝试使用exe的完整路径。e、 g system("/full/path/to/app.exe"); 您是这样设置路径的: 要获取您的路径: $path = $ENV{'PATH'}; 要设置它,请执行以下操作: $ENV{'PATH'} = 'some/dir:another/dir'; 尝试使用exe的

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

thnx,
kas

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

system("/full/path/to/app.exe");
您是这样设置路径的:

要获取您的路径:

$path = $ENV{'PATH'};
要设置它,请执行以下操作:

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

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

system("/full/path/to/app.exe");
您是这样设置路径的:

要获取您的路径:

$path = $ENV{'PATH'};
要设置它,请执行以下操作:

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

如果知道exe文件的位置,只需使用与从命令行运行相同的路径即可。在Perl中:

system('c:\full\path\to\exe\program.exe');
或者,如果您更喜欢使用正向斜杠(它们对于Windows内核都是一样的):


如果知道exe文件的位置,只需使用与从命令行运行相同的路径即可。在Perl中:

system('c:\full\path\to\exe\program.exe');
或者,如果您更喜欢使用正向斜杠(它们对于Windows内核都是一样的):


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

C:
- dira
| - a.exe
- dirb
  - dirc
    - a.pl
在命令提示下,您正在运行:

C:\dirb>perl dirc\a.pl
然后在perl文件中,您应该使用

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

如果命令提示符为:

C:\dirb\dirc>perl a.pl
然后你可以用

更新

文件test.pl:

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

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

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

C:
- dira
| - a.exe
- dirb
  - dirc
    - a.pl
在命令提示下,您正在运行:

C:\dirb>perl dirc\a.pl
然后在perl文件中,您应该使用

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

如果命令提示符为:

C:\dirb\dirc>perl a.pl
然后你可以用

更新

文件test.pl:

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

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


我已经将其标记为Windows,正如您提到的“exe”-如果您没有实际使用DOS/Windows,请随意重新标记。作为将来的参考,最好提及您正在使用的平台/OS/等,并相应地进行标记,除非这确实是一个平台不可知的问题。我已将其标记为Windows,正如您提到的“exe”-如果您没有实际使用DOS/Windows,请随意重新标记。作为将来的参考,最好提及您正在使用的平台/OS/etc并相应地标记,除非这确实是一个平台不可知的问题。硬编码是错误的
。改为使用。@daxim虽然是真的,但如果他调用的是随机的.exe文件,那么它的可移植性就不强了:)提醒:DOS使用
,所以主要不是关于可移植性,而是关于
错误。硬代码
是错误的。改为使用。@daxim虽然是真的,但如果他调用的是随机的.exe文件,那么它的可移植性就不强了:)提醒:DOS使用
,所以这主要不是关于可移植性,而是关于
的错误。单正斜杠也可以作为目录分隔符使用,并且比转义反斜杠读起来更好。@daxim,我认为两者都可以,但我太懒了,无法测试它以确保^^。这里的问题有点不同:假设exe a.exe是我要运行的文件,a.exe依赖于位于不同路径的两个库。每次安装a.exe时,这些库路径也会发生更改。所以我的目的是在设置.exe路径之前设置这些路径。现在,当我说$ENV{PATH}=“a.exe的依赖库路径”:“a.exe的路径”时,当我调用系统命令时,它不起作用。当系统命令生成一个shell并运行a.exe时,它不会获得我在系统命令之前在父命令中设置的所有路径。有办法吗?@Kaushik,我不能重复。你确定这条路没有通过吗?如果您还没有做过类似的事情,请尝试制作我添加的两个perl文件。单正斜杠也可以作为目录分隔符使用,并且比转义反斜杠的读取效果好得多。@daxim,我认为两者都可以,但我太懒了,无法测试它以确保^^。这里的问题有点不同:假设exe a.exe是我要运行的文件,a.exe依赖于位于不同路径的两个库。每次安装a.exe时,这些库路径也会发生更改。所以我的目的是在设置.exe路径之前设置这些路径。现在,当我说$ENV{PATH}=“a.exe的依赖库路径”:“a.exe的路径”时,当我调用系统命令时,它不起作用。当系统命令生成一个shell并运行a.exe时,它不会获得我在系统命令之前在父命令中设置的所有路径。有办法吗?@Kaushik,我不能重复。你确定这条路没有通过吗?如果您还没有完成类似的操作,请尝试创建我添加的两个perl文件。这里的问题略有不同:假设exe a.exe是我要运行的文件,而a.exe依赖于两个位于不同路径上的库。每次安装a.exe时,这些库路径也会发生更改。因此,我的目的是在设置之前设置这些路径a、 exe路径。现在,当我说$ENV{PATH}=“a.exe的依赖库路径”:“a.exe的路径”时,当我调用系统命令时,它不起作用。当系统命令生成一个shell并运行a.exe时,它不会获得我在系统命令之前在父命令中设置的所有路径。有什么方法可以做到这一点吗?这里的问题有点不同:假设exe a.exe是我要运行的文件,a.exe依赖于位于不同路径上的两个库。每次我安装a.exe时,这些库路径也会发生更改。所以我的目的是在设置.exe路径之前设置这些路径。现在当我说$ENV{PATH}=“依赖天秤座