小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

07...

 wuxinit_ 2022-03-18
set命令詳解


一, 用set 命令設置自定義變量

作用:
    顯示、設置或刪除 cmd.exe  環(huán)境變量。
格式:
    SET [variable]=[string] 
        variable    指定環(huán)境變量名。 
        string      指定要指派給變量的一系列字符串。    
說明:
    1) set          : 顯示所有環(huán)境變量
    2) set var=     : 清楚var的值
    3) %var%        : 引用變量的值
舉例:
    d:\cmd\04>set myVar=123
    d:\cmd\04>echo %myVar%
    123 


格式:
    SET /P variable=[promptString] 
        variable, 變量名
        promptString, 提示信息
說明:
    提供一個交互界面,讓用戶自己輸入變量的值,
舉例:
    d:\cmd\04>set /p var=input value: & @echo %var%
    input value: 123
    123


二, 用set 命令進行簡單計算

格式:
    SET /A expression 
說明:
    /A 命令行開關指定等號右邊的字符串為被評估的數(shù)字表達式。
    該表達式評估器很簡單,并以遞減的優(yōu)先權順序支持下列操作: 
        ()                   分組 
        ! ~ -                一元運算符 
        * / %                算數(shù)運算符 
        + -                  算數(shù)運算符 
        << >>                二進制邏輯移位 
        &                    二進制按位“與” 
        ^                    二進制按位“異” 
        |                    二進制按位“或” 
        = *= /= %= += -=     算數(shù)賦值 
        &= ^= |= <<= >>=     二進制運算賦值 
        ,                    表達式分隔符
    十進制數(shù)字 : 不帶前綴, 如 98
    八進制數(shù)字 : 前綴 0 (零), 如 0123
    十六進制數(shù)字:前綴 0x , 0xFF
舉例:
  1, 
    d:\cmd\04>set num=123
    d:\cmd\04>echo %num%
    123
    d:\cmd\04>set /a num=4%num%
    4123
    d:\cmd\04>set /a num=%num%-23
    4100
  2, 計算器功能
   2.bat =>
    @echo off
    set /p expression=輸入計算表達式:
    set /a var=%expression%
    echo %expression%=%var%
    pause
   MS-DOS =>
    d:\cmd\04>2.bat
    輸入計算表達式:1+2+3/2
    1+2+3/2=4    
        表達式: 
  3, 逗號
    d:\cmd\04>set /a a=1+1,b=2+2
    4
    d:\cmd\04>echo %a%, %b%
    2, 4
  4, 直接在變量上運算
    d:\cmd\04>set a=1
    d:\cmd\04>set /a a+=10
    11
  5, 邏輯運算(需要將運算符用雙引號包裹,或使用轉(zhuǎn)義符^)
    set /a var= 1 "&" 1     這樣結果就顯示出來了,其他邏輯或取余操作符用法 
    set /a var= 1 "+" 1     異運算 
    set /a var= 1 "%" 1     取模運算 
    set /a var= 3 "<<" 2    左移位運算, 3 的二進制為 11,左移 2 位為 1100,換成十進制就是 12,自行驗證 
    set /a var= 4 ">>" 2    右移位運算,4 的二進制為 100 ,右移動 2 位為 1,結果為 1
  6, 2的N次方
    3.bat => 變量無需用 "%%" 包裹
    @echo off
    set /p n=請輸入2的冪:
    set /a num=1 "<<" n
    echo %num%
    pause


三, 用set 命令進行字符串處理

1、字符串替換  
    格式:
        %variable:targetStr=replacementStr%
          variable      : 變量名
          targetStr     : 需要替換的字符串
          replacementStr: 替換后的內(nèi)容
    舉例:
        d:\cmd\04>set a=www.  baidu.com
        d:\cmd\04>echo %a%
        www.  baidu.com
        -----------------------------------------
        d:\cmd\04>set var=%a: =%        // 去掉空格
        d:\cmd\04>echo %var%
        www.baidu.com
        d:\cmd\04>set var=%a:.=#%       // 將"."換成"#"
        d:\cmd\04>echo %var%
        www#  baidu#com   
        ------------------------------------------
        d:\cmd\04>echo %a: =%
        www.baidu.com
        d:\cmd\04>echo %a:.=#%
        www#  baidu#com
2, 字符串截取
格式:
    %variable:~[ start [, length] ]%
        start   : 從第幾個字符開始, 缺省為0
                    正數(shù)(+p), 總左邊數(shù)p個
                    負數(shù)(-p), 從右邊數(shù)p個
        length  : 截取多少個, 缺省則取到末尾
                    正數(shù)(+n), n個
                    負數(shù)(-n), 總數(shù)-n  個
舉例:
    d:\cmd\04>echo %b%
    0123456789
    d:\cmd\04>echo %b:~1,4%
    1234
    d:\cmd\04>echo %b:~-3%
    789
    d:\cmd\04>echo %b:~0,-3%
    0123456    
總結:
    a=bbs.wuyou.com%a:~1,2%   =“bs”    
        偏移量 1,從第二位開始向右取 2 位 
    %a:~-3%    =“com ”   
        偏移量負 3,即倒數(shù) 3 位(也可理解為留下右邊 3 位),右取全部 
    %a:~3%     =“.wuyou.com ”  
        偏移量 3(也可理解為去掉左邊 3 位),右取全部 
    %a:~0,-3%    =“bbs.wuyou.”  
        偏移量 0,右取長度至負 3,即倒數(shù) 3 位 
    %a:~2,-3%    =“s.wuyou.”   
        偏移量2,右取長度至負 3,即倒數(shù) 3 位


思考: 輸入任意字符串, 求其長度
    @echo off
    set /p targetStr=請輸入任意長度的字符串:
    echo 您輸入的字符串為: "%targetStr%"


    :: 參數(shù)1, 傳入的字符串, 如有空格, 請用雙引號 括起來
    :: 參數(shù)2, 返回變量的名稱
    call :getStringLen "%targetStr%" len


    echo "%targetStr%" 的長度為: %len%


    :: 參數(shù)1, 傳入的字符串, 如有空格, 請用雙引號 括起來
    :: 參數(shù)2, 返回變量的名稱
    :getStringLen


        set theString=%~1
        set count=0


        :continue
            set /a count+=1 
            set theString=%theString:~0,-1%
            rem 如果theString未定義或者值為空
            if defined theString goto continue


        if not "%2"=="" set %2=%count%
    goto :eof

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多