如何使用perl脚本通过.bat文件运行文件夹中的一组.exe文件

How to run set of .exe files in a folder through .bat file using perl script

我是 Perl 的初学者,我必须创建一个 .pl 文件,并且我有一个包含近 30 个 exe 文件的文件夹(在 G:\Folder1 中的 Folder1 内)。所有这些都必须通过单击 .pl 文件来执行。

我的尝试是:

   use strict; use warnings;
use autodie;  # automatic error handling

while (defined(my $file = glob 'C:\shekhar_Axestrack_Intern*.exe')) 
{
  open my $fh, "<", $file;  # lexical file handles, automatic error handling

  while (defined( my $line = <$fh> )) {
    do system $fh ; 

  }
  close $fh;
}

请告诉我我的逻辑是否正确?如果我错了,有人可以纠正我吗?

我认为 pl2bat 可能对您有所帮助。它允许您将 Perl 代码包装到批处理文件中。

顺便说一句,为什么要在 Perl 脚本中使用 echo?你应该使用 print

编辑: 您已经编辑了您的问题,现在您想知道如何使用 Perl 运行 文件夹中的所有 exe 文件?

使用system命令运行提供完整路径的exe文件。

参见:How to run an executable file using Perl on Windows XP?

编辑 2: do system $fh ; 这不是你的做法,请买一本书(我建议 Ovid 的 Beginning Perl)并开始学习 Perl。

使用system执行exe:

while (my $file = glob 'C:\shekhar_Axestrack_Intern\*.exe') {
  system $file;
}

另外,我感觉你是想写'C:\shekhar_Axestrack_Intern*.exe' 而不是 'C:\shekhar_Axestrack_Intern*.exe'.