tomyamaのブログ

日記・雑記。

コマンドラインでWindowsとChromeブラウザのバージョンを取得する方法

不定期ですが時々PCのバックアップをしています。

その時に、前回からどんな変更があったのかを書き留めておきたくなり、代表的なソフトウェアで且つ頻繁にアップデートされるものが良いと考え、OS(Windows10)とブラウザ(Chrome)のバージョンを残すことにしました。

コマンドラインでバージョンを取得するには、それぞれ以下のようにします。

 

Windows10のバージョンを取得

>ver
Microsoft Windows [Version 10.0.19044.1889]
>

 

Chromeのバージョンを取得

"C:\Program Files (x86)\Google\Chrome\Application"

上記のフォルダにバージョンをあらわすフォルダがある。

CMDだと以下のようにして確認できる。

>dir "C:\Program Files (x86)\Google\Chrome\Application"
2022/09/04  18:13    <DIR>          .
2022/09/04  18:13    <DIR>          ..
2022/09/04  18:12    <DIR>          105.0.5195.102  ←コレ
2022/09/02  10:03         2,860,320 chrome.exe …
>  

 

自分はCygwinを使っているので、以下のようにして取得しています。

$ ls -1F "/cygdrive/c/Program Files (x86)/Google/Chrome/Application" | sed -n 's!^\([0-9].*[0-9]\)/$!\1!p'
105.0.5195.102
$

 

PCのバックアップはMakefile(GNU版)を使っているので、

バックアップ前に実行するdeployというターゲットに

WindowsChromeのバージョン取得コマンドを追加しておきます。

[Makefile]

deploy: … version_collector ;

.PHONY: version_collector
version_collector: $(FBU_PATH)/ver_windows.txt $(FBU_PATH)/ver_chrome.txt
    @echo "Microsoft Windows : `cat ver_windows.txt`"
    @echo "   Google Chrome  : `cat ver_chrome.txt`"

ver_windows.txt: /cygdrive/c/Windows
    ver=`stat "$<" | awk '/^Modify: /{printf("%s\n",$$2);}'` && \
    cmd /c ver | awk -v "VER=$$ver" '/^Microsoft Windows /{ver_len=length($$0)-29;printf("%s %s",VER,substr($$0,28,ver_len));}' > ver_windows.txt

ver_chrome.txt: /cygdrive/c/Program\ Files\ (x86)/Google/Chrome/Application
    ver=`stat "$<" | awk '/^Modify: /{printf("%s\n",$$2);}'` && \
    ls -1F "/cygdrive/c/Program Files (x86)/Google/Chrome/Application" | sed -n "s!^\([0-9].*\)/\$$!$$ver \1!p" > ver_chrome.txt

 

 

 

 

 

以下はメモ書き

$ strings '/cygdrive/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'  | grep '^[1-9][0-9]*\.[\.0-9][\.0-9]*$'
106.0.5249.103

 

$ strings '/cygdrive/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'  | mark -nf '^[1-9][0-9]*\.[\.0-9][\.0-9]*$'
        *** skip ***
  29212:' to HANDLE
  29213:' to WinVMAddress
  29214:enable-background-thread-pool
  29215:test-child-process
  29216:vmodule
  29217:106.0.5249.103
  29218:profile-directory
  29219:try-chrome-again
  29220:user-data-dir
  29221:UserDataDir
  29222:enabled

$