在windows用perl運行exe

來源:互聯網
上載者:User

現在做的一個項目,剛剛完成了所有組件的編譯連結,運行也沒問題。

但是每次運行看效果都得雙擊六個程式(四個視窗程序和二個命令列程式)。

就想著能不能做一個批處理一次運行了。

先想到的是bat指令碼,但因為有兩個命令列程式,且都是那種死迴圈不退出的那種,這造成在bat中開了第一個時卡住不運行第二個。

在網上找了一下關於如何讓其後台啟動並執行資料,都是關於VB方面的。

後來想PERL對於這種應該是小菜一碟吧,先在網上找,找到

1 system("Client.exe print");

 

和上面bat的問題一樣。

後來把PERL的協助文檔開啟,一看就看到了Win32::Process.

直接把例子COPY下來就能運行了。

但還是有兩個問題:

1. 兩個命令列程式都同時運行在一個命令視窗中.(和之前bat問題一樣)

2. 一些視窗程序本來是可以帶入參數,但就是不能正常運行。

 

 1 #!/usr/bin/perl 2  3 use Win32::Process; 4 use Win32; 5 sub ErrorReport{ 6 print Win32::FormatMessage( Win32::GetLastError() ); 7 } 8 Win32::Process::Create($ProcessObj1, "Client.exe", "",  9                     0, NORMAL_PRIORITY_CLASS, ".")|| die ErrorReport();10 sleep(5);11 Win32::Process::Create($ProcessObj2, "GndSystem.exe", "",12                      0, NORMAL_PRIORITY_CLASS, ".")|| die ErrorReport();13 sleep(5);14 Win32::Process::Create($ProcessObj3, "LmiInterface.exe", "",15                      0, NORMAL_PRIORITY_CLASS, ".")|| die ErrorReport();16 sleep(5);17 Win32::Process::Create($ProcessObj4, "Monitor.exe", "",18                      0, NORMAL_PRIORITY_CLASS, ".")|| die ErrorReport();19 sleep(5);20 #Win32::Process::Create($ProcessObj6, 'C:\Sim.exe', 'PACARS.sim', 0, NORMAL_PRIORITY_CLASS, 'C:\SecureACARS\Database')|| die ErrorReport();21 system('C:\Sim.exe PACARS.sim');

 

另附上請空log檔案的perl指令碼:

1 #!/usr/bin/perl2 3 open $Log, '> C:\GPAComm.log';4 close $Log;5 open $Log, '> C:\CoreError.log';6 close $Log;7 open $Log, '> C:\GPAError.log';8 close $Log;

http://www.tianming.me/?p=830
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.