【问题标题】:perl - open windows explorer and select input file for code to work onperl - 打开 Windows 资源管理器并选择要处理的代码的输入文件
【发布时间】:2016-11-08 20:46:55
【问题描述】:

我想编写一个 perl 脚本,允许用户从 Windows 资源管理器中选择一个文件并将其用作 perl 脚本中代码的输入(如 STDIN)。

因此代码会将 Windows 资源管理器打开到正确的目录,然后用户将单击(选择)他们的文件,然后脚本会将所选文件作为变量(例如我的 $selectedFile)执行它的业务。

我找到了一些打开 Windows 资源管理器的代码:

my $explorer = 'c:/windows/SysWOW64/explorer.exe';   
my $directory = 'C:\\testdir\\';
system($explorer,$directory);

...可以正常工作(基于 Perl 僧侣 http://www.perlmonks.org/bare/?node_id=313539)从 pl 脚本打开 Windows 资源管理器。

如何获取代码以识别我在资源管理器窗口中单击的文件并从中创建变量?有可能还是 Perl 不是这样做的方法?

干杯, 马特

【问题讨论】:

标签: windows perl file


【解决方案1】:

这是一个使用Tk的非常简单的方法。

use warnings;
use strict;

use Tk;

my $file = Tk::MainWindow->new->getOpenFile;

print "selected file: $file\n\n";

open my $fh, '<', $file or die $!;

while (<$fh>){
    print;
}

【讨论】:

    【解决方案2】:

    这是一个使用Win32::GUI 的非常简单的脚本:

    use strict;
    use warnings;
    
    use Win32::GUI ();
    
    my $file = Win32::GUI::GetOpenFileName(
        -filemustexist => 1,
    );
    
    if (defined $file) {
        print "Selected file: $file\n";
    } else {
        print "Canceled\n";
    }
    

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

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2014-06-25
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多