2016-08-22 13 views
0

私はいくつかのPerlスクリプトを次々と起動したいと思います(ただし、ここでは技術的には並行しています)。.BATファイルを使わずにファイルを開く方法をシミュレートするには?

たとえば、スクリプトは次のPerlスクリプトでのみからなる些細な.batファイルを作成するルーチンを作るのは簡単です:

write_file("Z.bat", "$myfile_nextnumber.pl\n"); 
system "start Z.bat"; 

、あなたは別のウィンドウで各スクリプトからの素敵な出力を得ます。

しかし、どのようにファイルを作成せずにこれを達成するには?

私が得たものに最も近い:

system "start cmd /k $myfile_nextnumber.pl"; 

が、この場合には、それが実行されたパスとファイルが表示されません。

+2

'start cmd/K title $ myfile_nextnumber.pl&$ myfile_nextnumber.pl'についてはどうですか? – aschipfl

+0

@aschipflもしあなたが '&'演算子を使うならば、[参照](https://technet.microsoft.com/en-us/library/bb490880)で述べたように、 'cmd'のためのすべてのコマンドを二重引用符で囲む必要があります。 aspx)では、 'start'から始まるすべての文字列を一重引用符で囲む必要がありますが、文字列に変数を渡すことはできません。 – Klaidonis

+1

また、 '&'のように '&'をエスケープすることもできます... – aschipfl

答えて

1

各システムコールの前にprint文を挿入するだけではどうですか?

foreach my $file (@filelist) { 
    print "Calling $file\n"; 
    system "start cmd /k $file"; 
} 
+0

私の場合、現在のPerlスクリプトが次のスクリプトを呼び出すことを望みますが、他のスクリプトを呼び出すメインスクリプトが1つあるときは好きではありません。つまり、すべてのPerlスクリプトの先頭に 'print'文を追加する必要があります。 – Klaidonis

関連する問題