在我詳細介紹之前,我想強調一點,使用PowerShell不是一種選擇,因爲腳本應該在可能無法使用PowerShell的計算機上運行。如何從命令輸出中查找並提取子字符串?
我需要檢查安裝在Windows機器上的Internet Explorer版本,並根據它的版本對其進行操作。
到目前爲止,我的批處理腳本是這樣的:
@echo off
setlocal
for /f "tokens=*" %%a in ('reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer" /v Version') do (set IEVerReg=%%a)
endlocal
正如你可以看到我分配reg query
輸出IEVarReg變量。在輸出中是在不同的Windows版本不同,例:
Windows XP中:
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
Version REG_SZ 8.0.6001.18702
的Windows 7:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
Version REG_SZ 9.0.8112.16421
理想情況下,我想從版本號獲得的第一個數字並做類似的事情:
if
version == 8
then
execute this
elseif
version == 9
then
execute that
我敢肯定我會弄清楚如何做if
部分,我得到的版本號,但它是越來越版本號的一部分,我不明白。我可以在bash,perl等中輕鬆完成,但不知道Windows命令行。
幫助將非常感激。
PS。我看過Jerold Schulman's script,但它返回了對我來說太多的整個版本號。
非常明顯!謝謝! – 2012-01-31 18:18:32