2015-12-16 12 views

答えて

11
setlocal 
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j 
if "%version%" == "6.3" echo Windows 8.1 
if "%version%" == "6.2" echo Windows 8. 
if "%version%" == "6.1" echo Windows 7. 
if "%version%" == "6.0" echo Windows Vista. 
if "%version%" == "10.0" echo Windows 10. 
echo %version% 
rem etc etc 
endlocal 
+0

ありがとうございます。これは私が必要としていたものです –

+0

この方法は、Windows XPでは 'ver'が' Microsoft Windows XP [バージョン5.1.2600] 'を出力し、' [Version.5'が変数 'VERSION'に割り当てられているので動作しません。しかし、[Martin Rezyne](http://stackoverflow.com/users/2357522/martin-rezyne)の質問によると、オペレーティングシステムがWindows 10であるかどうかを確認するためだけに機能します。 – Mofi

+1

@Mofi - %VERSION%の値は「10.0」ではないので、Windows 10を実行しているかどうかを確認するのに使うことができます。実際のバージョンの取得には役立ちませんが、そうではありません何を求めているのか。 – SomethingDark

4

あなたはそれがもう少し詳しいたい場合:

for /f "tokens=2 delims=," %%i in ('wmic os get caption^,version /format:csv') do set os=%%i 
echo Hello, I am %os% 

またはちょうどあなたの要件満たすために:

for /f "tokens=2 delims=," %%i in ('wmic os get caption^,version /format:csv') do set os=%%i 
echo %os%|find " 10 ">nul &&echo Hello I'm Windows 10||echo I am another os 

,version性を保証します、あなたの望むstr最後のトークンではありません。これには醜いワーム行が含まれています)

+0

この方法は、Windows XP Professionalでも機能します.Windows XP Professionalは、現在、Microsoftによってサポートされていません。しかし、コマンド 'ver'の出力を使用するのと比較して、' wmic'は常に1秒以上が必要です。 – Mofi

関連する問題