을 cmd를? 이 같은bash는 정규식 유사한 명령이 bash는 명령에 해당하는 것이 무엇 스크립트
if (ver | findstr /C:"Microsoft Windows [Version 6.3") (goto :set_win81)
을 cmd를? 이 같은bash는 정규식 유사한 명령이 bash는 명령에 해당하는 것이 무엇 스크립트
if (ver | findstr /C:"Microsoft Windows [Version 6.3") (goto :set_win81)
뭔가 충분 :
내가 좋아하는 뭔가를 사용하는 호핑했다. 여기ver | findstr /i /c:"Version 6.3" >nul && goto :set_win81
나는이 작업을 위해 멀리 squirreled했던 일부 코드 :
@echo off
set "windows="
VER | find " 4.1." > nul && set windows=W98
VER | find " 4.0." > nul && set windows=NT
VER | find " 5.0." > nul && set windows=W2K
VER | find " 5.1." > nul && set windows=XP
VER | find " 5.2." > nul && set windows=XP 64-Bit or Server 2003 or Server 2003 R2
VER | find " 6.0." > nul && set windows=Vista or server 2008
VER | find " 6.1." > nul && set windows=Win7 or server 2008 R2
VER | find " 6.2." > nul && set windows=Windows 8
VER | find " 6.3." > nul && set windows=Server 2012 R2 or Windows 8.1
if defined windows (
echo %windows%
) else (
echo unknown operating system
)
pause
ver
의 출력을 구문 분석하는 대신, 레지스트리를 사용할 수 있습니다
setlocal
set reg_info=reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion
for /f "skip=2 tokens=3" %%l in ('%reg_info%') do set win_ver=%%l
if "%win_ver%" equ "6.2" goto :set_win80
if "%win_ver%" equ "6.3" goto :set_win81
REM etc etc
요점은 루프를 몇 가지 설정과 함께 사용하여 출력이 reg query
인 다중 행, 다중 열 데이터를 구문 분석 할 수 있다는 것입니다.
@echo off
setlocal
:: Get windows Version numbers
set ver=""
set con="Microsoft Windows Version 6.3"
for /f "tokens=2 delims=[]" %%G in ('ver') do set ver=%%G
echo found version %ver%
if %%ver EQU %%con (
goto set_win81)
echo NO win81
exit/B
:set_win81
echo win81
exit/B
Windows 버전의 값은 다음과 같습니다 http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx – Tomalak
@Tomalak 감사합니다, 코드 업데이트 – foxidrive
첫 번째 코드 샘플도 오류입니다. 두 번째 견본의 줄과 같아야합니다. – Tomalak