【WINDOWS / DOS 批处理】if命令实现逻辑运算符
???if命令參數(shù)詳解
【IF命令格式】IF? [opt]? [not]?condition? cmdA? ? else? ??cmdB
- not關(guān)鍵字使IF命令支持邏輯運(yùn)算符 “非”(NOT)
- condition 不支持邏輯運(yùn)算符 “與”(AND)和 “或”(OR)
- 在?cmdA?和?cmdB?中都支持支持IF命令嵌套,示例如下:
? ? ? ? 運(yùn)行?
?【標(biāo)注一】? ?下載Notepad++??????
C:\>demo 請輸入一種顏色:yellow yellowC:\>demo 請輸入一種顏色:blue blueC:\>demo 請輸入一種顏色:other 顏色不符合要求C:\>在一種編程語言中,支持“條件與” 、“條件或”是必要的,在其它語言(例如:C語言)中,在條件中使用邏輯運(yùn)算符即可實(shí)現(xiàn)該功能。但是在WINDOWS / DOS 腳本編程中,IF命令的condition 不支持邏輯運(yùn)算符,所以只好“變相的”來實(shí)現(xiàn)。
【解決之道】
一、在?cmdA?中嵌套IF命令來實(shí)現(xiàn)“條件與”,IF命令格式如下:
IF? [opt]? ?conditionA? (IF? [opt]? ?conditionB? (IF? [opt]? ?conditionC? (...)) )????????示例
需求:只有三年級二班的同學(xué)才可以看電影,其它的同學(xué)都不可以
實(shí)現(xiàn)如下:
:: 本示例包含漢字,如執(zhí)行亂碼,請使用 Notepad++ 把本文檔轉(zhuǎn)化成ANSI編碼 【標(biāo)注一】 ::demo.bat @echo off setlocal enableDelayedExpansion set /p "grade=請輸入年級:" set /p "class=請輸入班級:" if %grade% == 3 ( if %class% == 2 ( echo see film ) ) else (echo not see film)? ? ? ? 運(yùn)行?
C:\>demo 請輸入年級:3 請輸入班級:2 see filmC:\>demo 請輸入年級:4 請輸入班級:2 not see filmC:\>demo 請輸入年級:1 請輸入班級:3 not see filmC:\>二、在?cmdB?中嵌套IF命令來實(shí)現(xiàn)“條件或”,IF命令格式如下:?
IF? [opt]? ?conditionA? cmdX else (IF? [opt]? ?conditionB? cmdY else (IF? [opt]? ?conditionC? cmdZ else (...)) )????????示例
需求:三年級或者四年級的同學(xué)才可以看電影,其它的同學(xué)都不可以
實(shí)現(xiàn)如下:
:: 本示例包含漢字,如執(zhí)行亂碼,請使用 Notepad++ 把本文檔轉(zhuǎn)化成ANSI編碼 【標(biāo)注一】 ::demo.bat @echo off setlocal enableDelayedExpansion set /p "grade=請輸入年級:" if %grade% == 3 ( echo see film ) else (if %grade% == 4 ( echo see film ) else (echo not see film) )? ? ? ? 運(yùn)行?
C:\>demo 請輸入年級:3 see filmC:\>demo 請輸入年級:4 see filmC:\>demo 請輸入年級:2 not see filmC:\>?【應(yīng)用實(shí)例】
IF命令同時(shí)實(shí)現(xiàn)“條件或”和“條件與”,示例如下:?
需求:三年級二班或者四年級一班的同學(xué)才可以看電影,其它的同學(xué)都不可以
實(shí)現(xiàn)如下:
:: 本示例包含漢字,如執(zhí)行亂碼,請使用 Notepad++ 把本文檔轉(zhuǎn)化成ANSI編碼 【標(biāo)注一】 ::demo.bat @echo off setlocal enableDelayedExpansion set /p "grade=請輸入年級:" set /p "class=請輸入班級:" if %grade% == 3 ( if %class% == 2 ( echo see film ) else (echo not see film ) ) else (if %grade% == 4 ( if %class% == 1 ( echo see film ) else (echo not see film ) ) else (echo not see film ))? ? ? ? 運(yùn)行
C:\>demo 請輸入年級:3 請輸入班級:2 see filmC:\>demo 請輸入年級:3 請輸入班級:1 not see filmC:\>demo 請輸入年級:4 請輸入班級:1 see filmC:\>demo 請輸入年級:4 請輸入班級:3 not see filmC:\>demo 請輸入年級:5 請輸入班級:1 not see filmC:\>寫作不易,如果本文對您有用,請?“在下面一圈三連”。
總結(jié)
以上是生活随笔為你收集整理的【WINDOWS / DOS 批处理】if命令实现逻辑运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统分析师真题__专项:计算机系统与配置
- 下一篇: vim,编辑文件后最简单的消除~ 和 .