1. 程式人生 > >DOS命令 的條件判斷(與或非:and、or 、not)

DOS命令 的條件判斷(與或非:and、or 、not)

DOS 命令實在是太弱,太難用了,基本的邏輯判斷寫起來都很費勁。一般的與或非如何解決呢?

1、非

這個有現成的,條件判斷前加not,例如:

C:\Users\HW>if 1==1 echo Ok
Ok

C:\Users\HW>if not 1==1 echo Ok

C:\Users\HW>

2、與

這個變通實現也還算簡單:

C:\Users\HW>if 1==1 if 2==2 echo Ok
Ok

C:\Users\HW>if 1==1 if 2==3 echo Ok

C:\Users\HW>

較為清晰的寫法:

if 1==1 (if 2==2 echo Ok)
if 1==1 (if 2==3 echo Ok)

相當於Java的這樣的寫法:
if(1==1){
    if(2==2){
        //echo Ok
         System.out.println("Ok");
    }
}


3、或

這個實現起來就比較繁瑣了,網上可找到如下幾種:(1)用多個if巢狀的;(2)用2個條件語句給一個變數賦值,再判斷該變數的;(3)用for迴圈的。

這些做法都顯得太麻煩。其實,直接用GOTO語句最簡單,只要滿足1個條件,就直接呼叫滿足條件的語句,毋需像Java或C語言一樣試圖將條件用邏輯判斷關鍵字來歸併。

例如,下面的程式邏輯實現只輸入1個引數或2個引數都不輸入時,列印幫助資訊:

if "%1"=="" goto printHelp

if "%2"=="" goto printHelp

:printHelp

@echo This is a help message, please refere to ...

注意: 如果if條件判斷為1命令,而不是子程式,則這樣寫會導致重複執行多次的問題。例如:

if "%1"=="" echo aaaaaaaaaaaaaaaaaa

if "%2"=="" echo bbbbbbbbbbbbbbbbbb

if "%3"=="" echo cccccccccccccccccc

如果不想用子程式,也可以採用if巢狀的寫法,if巢狀相對來說較為清晰一點:

(1) 不用子程式

if "%1"=="" (echo 1st param null) else (if "%2"=="" (echo 2sd param null) else (if "%3"=="" echo 3th param null) )

(2) 用子程式

if "%1"=="" (goto printHelp) else (if "%2"=="" (goto printHelp) else (if "%3"=="" goto printHelp) )

相當於Java的這樣的寫法(偽碼):

if("%1"==""){
    printHelp();
    return;
} else{
    if("%2"==""){
        printHelp();
        return;
    } else {       
        if("%3"==""){
            printHelp();
            return;
        }
    }
}


相關推薦

DOS命令條件判斷andor not

DOS 命令實在是太弱,太難用了,基本的邏輯判斷寫起來都很費勁。一般的與或非如何解決呢? 1、非 這個有現成的,條件判斷前加not,例如: C:\Users\HW>if 1==1 echo Ok Ok C:\Users\HW>if not 1==1 echo

C語言通過邏輯運算實現加法

1.加法器:首先看看下面的內容,瞭解一下什麼是加法器 本部分摘自:http://jpkc.nwpu.edu.cn/dzjc/diangongdz/wangluokecheng/dianzijishu/

Jquery屬性選擇器同時匹配多個條件,)

<!DOCTYPE html> <html> <head> <title>Test multi selection</title> <script src="http://apps.bdimg.

js--運算子 及 if判斷條件隱式轉換 介紹

邏輯運算子:   返回值是Boolean型別,一般連線多個比較表示式;   與(&&):當所有表示式都返回true時,結果才為true,即是遇false則false;   或(||):當所有表示式都返回false時,結果才為false,即是遇true則true;     與

Java開發筆記十二布林變數論道

在程式語言的設計之初,它們除了可以進行數學計算,還常常用於邏輯推理和條件判斷。為了實現邏輯判斷的功能,Java引入了一種布林型別boolean,用來表示“真”和“假”。該型別的變數只允許兩個取值,即true和false,其中true對應真值,而false對應假值。 如同數值變數擁有加減乘

Excel中IF函式的多條件判斷巢狀LOOKUP函式的聯合應用

1、IF函式的多條件判斷 當IF函式要對多個條件進行判斷時,除了AND和OR函式(前面文章介紹),更多的情況需要用到IF函式的巢狀。 例如要對學生的分數進行評級,當分數小於60分時,不及格;分數大於等於60分小於70分時為及格,以此類推。 選擇單元格—輸入公式=IF(B2 2、LOOKUP函式基礎應用

Excel中IF函數的多條件判斷嵌套LOOKUP函數的聯合應用

www. 默認 數組 不存在 返回 等於 美女圖片 解釋 函數基礎 1、IF函數的多條件判斷 當IF函數要對多個條件進行判斷時,除了AND和OR函數(前面文章介紹),更多的情況需要用到IF函數的嵌套。 例如要對學生的分數進行評級,當分數小於60分時,不及格;分數大於等於60

4Python_條件判斷if else input迴圈

1、對比java語言中if/else java: if(true){ }else{ }   python: if True:     print("this is true code") else if False:  

Shell中條件判斷語法判斷條件

expression 表達式 字符串 linux 影響 一,簡介Shell各種判斷結構和運算符的用法是shell編程的基礎,了解shell的判斷、運算符和一些退出狀態對後面的學習有很重要的影響。shell有一個內部命令test經常用於對判斷語句進行測試一種或幾種狀態的條件是否成立二. 判斷

JavaSE7基礎 位運算 int類型變量進行 按位

網上 深入 ava demo new 與或非 反碼 技術分享 notepad jdk版本 :jdk-7u72-windows-i586系統 :Windows7編輯器 :Notepad++ v7.4.2註意事項 :博文內容僅供參考,不可用於其他用途。 代

位運算之 C

代碼 cout expr namespace 整數 建議 div 不同 har View Code 位運算比較易混: 位運算之 C 與或非異或 與運算:& 兩者都為1為1,否則為0 1&1=1, 1&0=0, 0&1=0, 0

Python基礎---循環--條件判斷while-for-if-elif-else

Python基礎---循環--條件判斷!!!語句!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1.代碼實例: #if語句#!/usr/bin/python3#_*_coding:utf-8_*_num = 10if num == 10: pri

Shell條件判斷語句if

相等 完全 ash find sts elif 用戶輸入 判斷語句 數字 一、條件判斷語句 滿足條件執行對應命令 [ 條件 ]:一般多用於腳本內 例: [ -f /etc/hosts ] test 條件:一般多用於Linux字符終端 1.文件或目錄判斷 -f:判斷是否為文件

Python中的以及邏輯短路

Python中的與或非以及邏輯短路 python3.7 Shawn 文件: https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not 文章目錄 Pyt

spring boot 整合thyemleaf基本使用 條件判斷

thyemleaf基本使用 條件判斷 <!--用if來判斷--> <span th:if="${sex}=='男'"> 性別:男 </span> <span th:if="${sex}=='女'">

dto 返回 null 的處理 必須必須欄位控制

1. 如果要dto 上不顯示 null 值的直段那麼使用註解 @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO { //todo } 2. 配置全域性的設定可以在yml 配置檔案 spri

邏輯電路原始碼

#邏輯電路原始碼 class LogicGate(object): def __init__(self,n): self.label=n self.output=None def getlabel(self):

正則表示式實現

我們先虛擬兩個表示式PatternA和PatternB,分別校驗條件A和條件B 一 匹配字元串同時滿足條件A和條件B (?=PatternA)PatternB 二 匹配字串滿足條件A,但不可滿足條件B (?!PatternB)PatternA 三 匹配字串或者滿

閘電路邏輯符號大全(三態門,同門,異門,門,門, 傳輸門,全加器,半加器等)

最近要研究一下濾波器設計的無乘法器的實現,所以要學習一下加法器的電路,丟了一段時間,忘的差不多了,這裡羅列一下常用的閘電路的符號。 這是一個1位全加器的數位電路組成: 以下兩幅圖可以複習一下數位電路中的常用的元件。 

Windows下打包maven專案,編寫bat指令碼,dos命令在後臺執行關閉

在IDEA終端 mvn clean package  會在專案目錄下建立一個target目錄,打好包的jar包就在這個目錄下。 那麼如何執行? 首先編寫bat檔案,如下編寫 eureka_run.bat   @echo off start jav