отсоедините .exe от основного сценария Perl - PullRequest
1 голос
/ 28 февраля 2011

Я застрял здесь .. :( Я пытаюсь выполнить файл temp.exe из сценария Perl.

Я попытался использовать следующее:

1)

         $pid=  open( CMD, "| exp.exe  > C:\exp_out.txt" );
         print CMD "arg1\n";
         print CMD "arg2\n";
         print CMD "arg3\n";

Теперь этот exp.exe продолжает работать в фоновом режиме без каких-либо проблем.но если я хочу закрыть его и запустить снова, он запускает exp.exe, но не предоставляет входные аргументы для exp.exe

Закрытие:

         system("taskkill /F /T /pid $pid");` 

Теперь это частьиз 2 подпрограмм открывать и закрывать ...

Я также пробовал Open2; Win32 :: Process;Open2 застрял в exp.exe и Win32 :: Process Я не знаю, как передать несколько аргументов.

1 Ответ

1 голос
/ 28 февраля 2011

Попробуйте передать аргументы в командной строке. Печать в CMD похожа на ввод текста после открытия канала. Если это то, что вы хотите, то ваша программа exp.exe должна ожидать ввода от STDIN

$pid = open(CMD, "| exp.exe arg1 arg2 arg3 > file.txt");
#do your work here
close(CMD)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...