본문으로 바로가기

배치파일 - 파일 버전확인 sigcheck.exe

category Win Style/WinAll 2018. 6. 27. 18:03
반응형

sigcheck.exe 로 어느 파일의 버전을 확인해보자.


윈도우 설치 부팅PE에 사용한 AUTOXML.CMD에서 사용된 예로 들면,


::설치된 윈도우 드라이브검색

for %%i in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: Y: Z:) do (

  IF exist %%i\$WINDOWS.~BT ( 

    SET windrv=%%i

  )

)


::윈도우7일경우 usb3 자동설치

for /f "usebackq tokens=1-2 delims=." %%i in (`sigcheck.exe -accepteula -n %windrv%\windows\explorer.exe`) do set VERSION=%%i.%%j

if "%version%" == "6.1" start /wait %USBDRV%\AUTOXML\win7usb3.exe %windrv%



맨 끝줄, 설치한 윈도우가, 윈도우7일 경우 win7usb3.exe를 실행해서 USB3.0드라이버를 자동 통합하는 구문으로 되어 있다.


윈도우 버전들은 다음과 같이 빌드 넘버를 가지고 있다.

6.0 비스타

6.1 윈도우7

6.2 윈도우8

6.3 윈도우8.1

10.0 윈도우10

10.0.10240 윈도우10 RS1

10.0.15063 윈도우10 RS2

10.0.16299 윈도우10 RS3

10.0.17134 윈도우10 RS4




sigcheck 은 sysinternal 사의 툴중 하나다.MS에서 인수한것으로 보인다. 


https://docs.microsoft.com/ko-kr/sysinternals/downloads/sigcheck


32비트 64비트가 있다. 


옵션들은 많이 있다. https://ss64.com/nt/sigcheck.html 참고


아래 를 보자.

-accepteula는 프로그램실행동의 옵션 으로 프로그램 실행시마다 나타나면 짜증나겠지?

그래서 자동으로 "동의" 해준다.

-n 은 프로그램 버전명만 딱 보여준다. 좋지.


CMD창에서 한번 해보자

sigcheck.exe -accepteula -n %windir%\explorer.exe


아래와 같이 나올 것이다.

sigcheck 의 정보와 그리고 우리가 요구하는 버전명

Sigcheck v2.60 - File version and signature viewer

Copyright (C) 2004-2017 Mark Russinovich

Sysinternals - www.sysinternals.com


10.0.17134.1 (WinBuild.160101.0800)



sigcheck.exe -accepteula -n %windir%\explorer.exe >a.txt


로 해보면 딱 버전명 한줄만 나온다.

따라서 sigcheck 의 정보는 단지 CMD에서 보여주기만 할 뿐임을 알 수 있다.


그러면 다음과 같이 배치를 작성해보자.



@echo off

pushd %~dp0

for /f "usebackq tokens=1-2 delims=." %%i in (`sigcheck.exe -accepteula -n %windir%\explorer.exe`) do set %VERSION%= %%i.%%j

if "%VERSION%" == "6.1" echo win7

if "%VERSION%" == "10.0" echo win10


usebackq를 쓰는 것은 (  )에 명령구문을 쓰기때문에 사용하며 명령구문을 사용할시 ` (키보드 숫자1의 왼쪽옆) 키로 명령구문 처음과 끝을 묶어준다

변수로 받을 토큰을 점 기호 기준으로 2개만 받기

따라서 버전명

10.0.17134.1 (WinBuild.160101.0800)


이것을 점 을 기준으로 끝었을때 첫번째, 두번째이므로

10 0 이 %%i %%j 에 각각 할당된다.


따라서 SET %VERSION%=%%i.%%j 로 주었을때 

VERSION=10.0 이 된다.


응용을 해서 AUTOXML에 사용함.



반응형