윈 도 우 윈도우 버전 확인하는 배치파일
2021.03.23 11:13
안녕하세요
윈도우 버전을 확인하는 ex 1909 20h1 20h2 등을 확인하는 배치파일을 만들려고 하는데 감이 잡히질 않아서요
단순히 ver을 치면 19042.868 이런식으로 출력이 되어 1909 20h1 20h2등을 확인하기 어려운데 방법있을까요?
댓글 [3]
-
GreatEscape 2021.03.23 11:26 -
suk 2021.03.23 12:08
Windows 10 버전 1511 ~ 버전 2004까지는 다음 레지스트리가 버전을 표시했습니다. winver의 버전과 같습니다
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v ReleaseId
Windows 10 버전 20H2 부터는 DisplayVersion가 새로 추가되면서 버전을 표시하게 됐습니다. winver의 버전과 같습니다
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion
ReleaseId는 그대로 남아 있습니다만 DisplayVersion와 다릅니다. 물론 winver와 같은 DisplayVersion의 버전이 맞습니다
예를 들어서 버전 20H2는 이미 쓴대로 DisplayVersion은 20H2 이고, ReleaseId는 2009 입니다
버전 20H2 다음은 버전 21H1 입니다.
버전을 숫자만으로 하면 기존에 숫자들과 혼동의 소지가 있다고 판단해서 계속 버전 이름이 이런 식으로 갈 듯 합니다
실제 버전 2004는 원래 그동안의 흐름대로라면 버전 2003 인데 (~ 버전 1703, 버전 1709, 버전 1803, 버전 1809, 버전 1903, 버전 1909)
서버 2003과 혼동의 우려가 있어서 버전 2004로 했다고 합니다
그래서 버전 2004 후는 버전에 월 숫자를 공식적으로는 쓰지 않고, H1과 H2 (상반기와 하반기)를 사용합니다
개인적으로는 계속 버전에 월 숫자를 사용하시는 분들이 계시더군요.
bat 파일에서는 이렇게 하시면 DisplayVersion 있든 없든 Windows 10 버전이 제대로 나옵니다.
for /f "tokens=3" %%a in ('reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v ReleaseId 2^>nul') do set version=%%a
for /f "tokens=3" %%a in ('reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion 2^>nul') do set version=%%a
DisplayVersion가 없으면 ReleaseId가 버전이 되고
DisplayVersion가 있으면 ReleaseId 버전을 갱신하게 됩니다
DisplayVersion와 ReleaseId 둘다 없는 것은 윈도우 10 최초의 버전 1507 뿐입니다.
버전에 연월 형식이 생긴 것이 버전 1511 부터라서 그렇습니다
윈도우 10 최초의 버전 1507 은 MS에서 소급 적용한 가상의 버전 이름이고, 실제 버전은 전통적인 커널 버전 10.0 으로 표시됩니다
방금 설치해봤습니다. 제가 몇개월은 사용했을텐데 6년쯤 지났다고 낯서네요
-
First. 2021.03.23 12:36
감사합니다~!!
커맨드 자체 기능 만으로는 불가능하고 버전 목록을 가지고 스크립트화 하면 가능합니다
https://en.wikipedia.org/wiki/Windows_10