2016-10-04 30 views
1

私は、別々のコマンドプロンプトで実行する必要がある2つの異なるコマンドを実行するためにperlを使用しようとしています。それは新しいコマンド・プロンプトを開き、私が必要と私のスクリプトを実行したディレクトリへのパス - 私は期待どおりに動作しますperlスクリプトで複数のコマンドを実行する方法

system('start cmd /k "cd c:\PerlExamples && perl Perl_Ex_1.pl"'); 

を実行

は:

は、ここに詳細の一部です。

しかし、別のサンプルスクリプトを実行するたびにループ内でこのシステム...コマンドを使用します。 しかし、私は次のコード行、

my $cmd = "perl Perl_Ex_1.pl"; 
system("start cmd /k cd c:\PerlExamples && $cmd"); 

を実行すると、それは私が必要なディレクトリに新しいコマンドプロンプトとパスを開きます。しかし、それは私のサンプルスクリプトを元のウィンドウで実行し、新しくオープンしたコマンドプロンプトでは実行しません。

これを行う方法はありますか?

ありがとうございます。

+0

'/ k'の代わりに'/c'を試したことがありますか?私は今すぐテストすることができません(Windowsは利用できません)。または、「スタート」せずに試してみてください。 – PerlDuck

+0

問題は、私はそのウィンドウを開いたままにして閉じておく必要があるということです。 – sharve

+0

2番目のコマンドで 'cd c:\ PerlExamples && $ cmd'を引用符で囲んでいない可能性がありますか? – user3243135

答えて

1

パール修道士の知恵のおかげで、私は私の問題を解決しました。ソリューションへ

リンク: http://www.perlmonks.org/?node_id=1173278

ソリューションは、使用のいずれかにある:

my $cmd = "perl Perl_Ex_1.pl"; 
system(qq{start cmd /k "cd c:\\PerlExamples && $cmd"}); 

または使用:

my $cmd = "perl Perl_Ex_1.pl"; 
system qq[ start /D c:\\PerlExamples cmd /k $cmd ]; 

ありがとうございました。

関連する問題