2016-07-06 3 views
0

Windowsエクスプローラからファイルを選択し、これをperlスクリプト内のコードの入力として使用できるperlスクリプトを作成したいと思いますSTDINのように)。perl - 開いているウィンドウエクスプローラと作業するコードの入力ファイルを選択

Windowsエクスプローラを正しいディレクトリに開くと、ユーザーはそのファイルをクリック(選択)し、スクリプトは選択したファイルのビジネス(たとえばmy $ selectedFile)を行います。

私は、Windowsエクスプローラを開くには、いくつかのコードを発見した:正常に動作します

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

は... PLスクリプトからWindowsエクスプローラを開くために(Perlの僧侶http://www.perlmonks.org/bare/?node_id=313539に基づきます)。

エクスプローラウィンドウでクリックしたファイルをコードに認識させて変数を作成するにはどうすればよいですか?それは可能ですか、Perlはそれを行う方法ではありませんか?

乾杯、 マット

+0

関連:[Perlで開いたフォルダの選択ダイアログを表示するにはどうすればいいですか?](http://stackoverflow.com/questions/1871290/how-do-i-present-an-open-folder-selection-dialog- in-perl) – ThisSuitIsBlackNot

答えて

0

はここ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; 
} 
1

はここ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 ...)を持っていない場合は、少なくともStrawberry Perlで、cpan Win32::GUIを使用してインストールすることができます。 ActivePerlを使用している場合は、ppm install Win32-GUIで取得できると思います。

関連する問題