2011-09-15 7 views
0

Windowsのperlを使用してcmd.exeの内容をテキストファイルにコピーしようとしています。 これを行う簡単な方法はありますか?perlを使用してWindowsのcmd.exeウィンドウの内容をコピーします

+1

'cmd.exe'の内容はどういう意味ですか?実行時に出力される内容、またはプログラムの実際の16進数コードを意味しますか? – EdoDodo

+0

ファイル 'C:\ WINDOWS \ system32 \ cmd.exe'の内容を意味していますか? 'cmd.exe'で起動したプログラムの出力?また、 'cmd.exe'コンソールの内容をスクラップすることもできますか? – mob

+0

はい!それが実行された後のcmd.exeの出力。しかし、私は "> textFil.txtを使用したくない"私はこの仕事をするためにperlスクリプトが必要です。テキストをコピーしてファイルに書き込むことは可能ですか? –

答えて

1
my $text = `cmd.exe params`; 
open my $fh, '>>', 'exec.log'; 
print $fh $text; 
close $fh; 
0
system("command args > log"); 

0

私はずっと窓では動作しませんが、私はそれがLinuxの実行ファイルからの出力を取得することと同じであることを想像するだろう。

#!/usr/local/bin/perl 
# Using strawberry perl 
use strict; 
use warnings; 

my $cmd = 'c:\windows\system32\cmd.exe /?|'; 
open (FH, $cmd) or die "Can't open $cmd: $!"; 
my $content = do { local $/; <FH>; }; 
print $content; 
+0

私はすでに実行中のcmd.exeのconentをコピーして、システム上ですでに動作しているタスク(qwerty.exeなど)を実行していました。 –

+0

この場合、おそらくTEEコマンドを使用して出力をログファイルにダンプし、コンソールに引き続き表示してから、perlを使用してそのログファイルから読み込むことができます。 teeコマンドの詳細はこちら:http://en.wikipedia.org/wiki/Tee_%28command%29 – jblue

0

コンソールウィンドウでタスクを実行したので、これらの行をコピーする必要がありますか?私はそれを行う方法があるとは思っていません。

まだ実行していない場合は、Win32::Consoleを使用してコンソールウィンドウを作成し、そのコンソールウィンドウを読み書きすることができます。

関連する問題