2013-06-03 80 views
8

我想在Perl Windows中構建一個快速自動更新程序。我注意到當我呼叫cpanp安裝軟件包的更新時,由於該腳本當前正在運行,因此無法安裝新版本的腳本。目前我撥打cpanpCORE::system()。如果我用exec()調用cpanp,是否會釋放用於替換的可執行文件?或者,即使執行完全轉移到cpanp,Windows是否仍然保持聯機狀態?Windows腳本自動更新用exec替換當前的可執行文件?

目前,我的流程看起來是這樣的,從服務器

  1. 下載META.yml
  2. 解析出META.yml的版本
  3. 比較逆水$VERSION
    • 如果當前版本較低,使用META.yml中的數據生成版本字符串
      1. Ge使用META.yml的主機/路徑以及版本/數據信息
      2. 通知用戶更新
      3. 生成cpanp以使用URL運行更新。
    • 如果當前的版本是一樣的
      1. 什麼都不做

system()行爲不同於exec()在Win32關於更換可執行的?在Linux上,它按照設計工作。

+0

你說的是** Perl **可執行文件嗎? –

回答