我需要一个.bat文件来选择多个文件并运行perl脚本

时间:2016-07-18 08:03:03

标签: windows perl batch-file

基本上我想将多个输入文件作为参数传递并运行我的perl脚本。我已经有一个.bat脚本,它选择一个文件。反正有没有.bat文件,它提供了一个选项,使用ctrl键选择多个文件,就像我们附加文件来说一个电子邮件时我们有这个选项的方式。

非常感谢帮助...... 感谢!!!!

现有的.bat脚本

enter image description here

2 个答案:

答案 0 :(得分:0)

你的问题对我来说不是很清楚。我相信你想使用perl处理你的命令行参数。

运行代码:

perl run.pl file1.log file2.log file3.log

代码:

use strict;
use warnings;
my $val1= $ARGV[0];
my $val2 = $ARGV[1];
my $val3 = $ARGV[2];
print "$val1\n$val2\n$val3\n";

输出

file1.log 
file2.log 
file3.log

通过这种方式,您可以在perl脚本中获取参数,然后就可以处理它们了。

希望这会对你有所帮助。

答案 1 :(得分:0)

如果您只是想让用户选择文件,那么您不需要使用.bat脚本编写一个.vbs脚本来编写写入.hta脚本的脚本结果到了注册表。

您可以直接在Perl中执行此操作:

use strict;
use warnings;

use Win32::GUI ();

my @files = Win32::GUI::GetOpenFileName(
    -filemustexist => 1,
    -multisel      => 1,
);

if (@files == 1 && !defined $files[0]) {
    print "Canceled\n";
} elsif (@files == 1) {
    print "Selected one file: $files[0]\n";
} else {
    my $dir = shift @files;
    print "Selected multiple files in $dir\n";
    for my $file (@files) {
        print " - $file\n";
    }
}

如果您还没有Win32 :: GUI(Can't locate Win32/GUI.pm in @INC ...),则可以使用cpan Win32::GUI安装它,至少使用Strawberry Perl。如果您使用ActivePerl,我认为您可以使用ppm install Win32-GUI