如何利用批次檔判斷某程式的版本?

顯示結果從第 1 筆 到 6 筆,共計 6 筆
  1. #1
    古毛
    註冊日期
    2001-05-15
    所在地區
    光纖
    討論區文章
    339

    如何利用批次檔判斷某程式的版本?

    如何利用批次檔判斷某程式的版本?
    而某程式是指一般小程式或是綠色軟體之類...

    因工作上有這個需求,
    但又不會寫程式,
    所以想利用.cmd / .bat 來處理這個問題,
    但又找不到相關的資訊,
    所以來請教各位前輩 ...

    工作環境是在Win XP/2003



  2. #2
    會員
    註冊日期
    2005-11-27
    所在地區
    Seednet FTTB 60M/15M
    討論區文章
    2,610

    回覆: 如何利用批次檔判斷某程式的版本?

    你的講法太糢糊了

    版本?

  3. #3
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: 如何利用批次檔判斷某程式的版本?

    至少給個範例程式比較容易測試.

    通常會有個 -V 來顯示版本, 但是不一定, 有的只有圖形或是連執行都不行(例:msiexec /?).

    C:\Documents and Settings\bx2aa>sed -V
    GNU sed version 2.02

    C:\Documents and Settings\bx2aa>sed -V 2> sed.txt

    C:\Documents and Settings\bx2aa>gawk
    Gnu Awk (gawk) 2.15, patchlevel 0
    usage: gawk [POSIX or GNU style options] -f progfile [--] file ...
    gawk [POSIX or GNU style options] [--] 'program' file ...

    POSIX options: GNU long options:
    -f progfile --file=progfile
    -F fs --field-separator=fs
    -v var=val --assign=var=val
    -W compat --compat
    -W copyleft --copyleft
    -W copyright --copyright
    -W help --help
    -W lint --lint
    -W posix --posix
    -W source=program-text --source=program-text
    -W usage --usage
    -W version --version

    C:\Documents and Settings\bx2aa>gawk 2> gawk.txt

    C:\Documents and Settings\bx2aa>type gawk.txt | grep "Gnu Awk"
    Gnu Awk (gawk) 2.15, patchlevel 0

    C:\Documents and Settings\bx2aa>type gawk.txt | grep "Gnu Awk" | cut -c16-19
    2.15

    C:\Documents and Settings\bx2aa>type gawk.txt | grep "Gnu Awk" | cut -c16-19 > gawk1.txt

    C:\Documents and Settings\bx2aa>for /F %i in (gawk1.txt) do set test=%i

    C:\Documents and Settings\bx2aa>set test=2.15

    C:\Documents and Settings\bx2aa>echo %test%
    2.15

    C:\Documents and Settings\bx2aa>if %test%==2.15 echo YES
    YES

    TEST.BAT
    =================== start ========================
    @ECHO OFF
    CLS
    gawk 2> gawk.txt
    type gawk.txt | grep "Gnu Awk" | cut -c16-19 > gawk1.txt
    for /F %%i in (gawk1.txt) do set test=%%i
    set test=2.15
    if %test%==2.15 echo YES
    pause > nul
    =================== END ========================

    執行結果:
    YES

    需有 UnxUtils
    GNU utilities for native Win32
    http://sourceforge.net/projects/unxutils
    http://sourceforge.net/project/showf...ease_id=490307
    http://downloads.sourceforge.net/unx...4&big_mirror=0
    把解開 usr\local\wbin 裡面的 cut grep sed gawk 複製到和 test.bat 同目錄下
    此文章於 2009-06-09 11:11 AM 被 bx2aa 編輯。

  4. #4
    會員 threesecond 的大頭照
    註冊日期
    2005-10-26
    所在地區
    ADSL3M
    討論區文章
    541

    回覆: 如何利用批次檔判斷某程式的版本?

    不見得一定要從執行檔判斷,
    只要是安裝的程式應該都會在 HKLM\Software 裡面寫入機碼,
    用 reg.exe 去撈機碼多半也可以撈到版本。

  5. #5
    萌え尽き症候群 琥珀 的大頭照
    註冊日期
    2002-08-17
    所在地區
    中和區
    討論區文章
    10,022
    可使用 sigcheck 檢查。



  6. #6
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: 如何利用批次檔判斷某程式的版本?

    用 reg 去撈出來的有個問題是當移除後還遺留的問題.

    用 sigcheck.exe 可以抓出 msiexec 的版本, 我用的綠色軟體 TMPGEnc 也可以抓到版本.
    G:\Sigcheck>sigcheck -n "TMPGEnc.exe"

    sigcheck v1.60 - sigcheck
    Copyright (C) 2004-2009 Mark Russinovich
    Sysinternals - www.sysinternals.com

    2.54.37.135

    我個人建議, 不如從現在開始把安裝目錄名稱用版本當路徑安裝那應該很容易抓到.
    但是軟體已經寫死的就沒辦法.
    此文章於 2009-06-09 07:22 PM 被 bx2aa 編輯。

類似的主題

  1. [分享]利用批次檔備份資料(檔名是依據年月日時分秒)...
    作者:bobhsieh 所在討論版:-- Windows 討 論 版
    回覆: 5
    最後發表: 2009-07-16, 03:58 PM
  2. windows 2000的批次檔該如何寫?
    作者:kayguay 所在討論版:-- Windows 討 論 版
    回覆: 0
    最後發表: 2005-08-02, 12:59 PM
  3. 【求助】如何用批次檔結束某一程式
    作者:jasan 所在討論版:-- Windows 討 論 版
    回覆: 9
    最後發表: 2004-01-03, 11:52 PM
  4. 如何使用flashget的批次檔下載
    作者:kib71454 所在討論版:---- 電 腦 / 網 路 軟 體 精 華 區
    回覆: 3
    最後發表: 2001-10-06, 10:53 AM
  5. 如何使用flashget的批次檔下載
    作者:kib71454 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 3
    最後發表: 2001-10-06, 10:53 AM

 

批次檔判斷 windows 版本

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •