2015-12-16 14 views
5

Tôi muốn tạo một tệp lô sẽ thực hiện thao tác sau: kiểm tra xem hệ điều hành đang chạy có phải là cửa sổ hay không. Nếu nó là hơn nó nên in Hello. Im win 10 khác nên in tin nhắn khác. Làm thế nào tôi có thể làm điều này nếu điều kiện?Tệp hàng loạt: Kiểm tra xem hệ điều hành có là Windows 10

Mã giả:

if OS == Win10 then 
    echo Hello im win 10 
else 
    echo I am another os 

Trả lời

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

Cảm ơn bạn. Đây chính xác là những gì tôi cần –

+0

Phương pháp này không hoạt động đối với Windows XP vì 'ver' kết quả đầu ra 'Microsoft Windows XP [Phiên bản 5.1.2600]' và do đó '[Version.5' được gán cho biến' VERSION'. Tuy nhiên, nó hoạt động chỉ để kiểm tra nếu hệ điều hành là Windows 10 theo yêu cầu của [Martin Rezyne] (http://stackoverflow.com/users/2357522/martin-rezyne). – Mofi

+1

@Mofi - bất kể giá trị của% VERSION% sẽ không là '10.0' và vì vậy nó có thể được sử dụng để kiểm tra xem bạn có đang chạy Windows 10. Sẽ không giúp ích gì khi nhận phiên bản thực tế, nhưng đó không phải là câu hỏi là gì. – SomethingDark

4

nếu bạn muốn nó chi tiết hơn một chút:

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

hoặc chỉ đáp ứng yêu cầu của bạn:

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 

(các ,version Đảm bảo , đường bạn mong muốn ing không phải là mã thông báo cuối cùng, chứa dòng wmic xấu xí kết thúc)

+0

Phương pháp này hoạt động ngay cả đối với Windows XP Professional hiện không còn được hỗ trợ bởi Microsoft. Nhưng nó là chậm so với việc sử dụng đầu ra của lệnh 'ver' như' wmic' cần luôn hơn 1 giây để hoàn thành. – Mofi

Các vấn đề liên quan