乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      批處理命令學(xué)習(xí)之:set命令詳解

       角亢氐房心尾箕 2017-02-21
      批處理命令學(xué)習(xí)之:set命令詳解 
      綠化資料 免費(fèi)實(shí)用綠軟 2年前 (2014-10-04) 1084瀏覽 0評(píng)論

      學(xué)習(xí)要點(diǎn): 
       1.用set 命令設(shè)置自定義變量 
       2.用set 命令進(jìn)行字符串處理 
       3.用set 命令進(jìn)行簡(jiǎn)單計(jì)算 
       —————————————————————————————————– 

       一、用set 命令設(shè)置自定義變量 
       格式:set [variable=[string]] 
       variable 指定環(huán)境變量名。 string 指定要指派給變量variable的一系列字符串。 
       —————————————————————————————————– 

      例1,   @echo off   set var=abcd   echo %var%   pause 
      在例1中,set var=abcd 是批處理設(shè)置變量的方法。Var是變量名,而abcd則是變量名var的值。echo %var% ,在批 
       處理中我們要引用這個(gè)變量就把var 變量名用兩個(gè)%(百分號(hào))擴(kuò)起來(lái),如%var% 

      注意:以下用法將清除變量variable 的值,使其變成未定義狀態(tài)。 
      set variable= 
       上面等號(hào)后面無(wú)任何符號(hào),如果寫成SET variable=””,此時(shí)變量值并不為空,而是等于兩個(gè)引號(hào),即”” 

      例2,   @echo off   set var= 
       set var1=”” 
       if defined var (echo var的值為%var%) else echo var沒(méi)有賦值 
       if defined var1 (echo var1的值為%var1%) else echo var1沒(méi)有賦值 
       pause 

      set還可以提供一個(gè)交互界面,讓用戶自己輸入變量的值,然后我們?cè)趤?lái)根據(jù)這個(gè)值來(lái)做相應(yīng)操作,現(xiàn)在我就來(lái)說(shuō)說(shuō)set 
       的這種語(yǔ)法,只需要加一個(gè)”/P”參數(shù)就可以了! 

      例3, 
       @echo off 
       set /p var=請(qǐng)輸入變量的值: 
       echo您輸入了%var% 
       pause 

      執(zhí)行上面的批處理時(shí),系統(tǒng)會(huì)提示你:“請(qǐng)輸入變量的值:”還是自己動(dòng)手嘗試一下吧,呵呵! 
       —————————————————————————————————– 


       二、用set 命令進(jìn)行字符串處理 

      1、字符串替換 
       格式:%PATH:str1=str2% 
       意思就是:將字符串變量%PATH%中的str1 替換為str2 
       —————————————————————————————————– 

      例4, 
       @echo off 
       set a= bbs. bathome. cn 
       echo替換前的值: “%a%” 
       set var=%a: =% 
       echo替換后的值: “%var%” 
       pause 

      執(zhí)行后顯示: 
       替換前的值: ” bbs. bathome. cn” 
       替換后的值: “bbs.bathome.cn” 

      對(duì)比一下,我們發(fā)現(xiàn)它把變量%a%的空格給替換掉了,而%PATH:str1=str2%這個(gè)操作就是把變量%PATH%的里的str1 全 
       部用str2 替換。 

      例5, 
       @echo off 
       set a= bbs.bathome.cn 
       echo替換前的值: “%a%” 
       set var=%a:.=小情% 
       echo替換后的值: “%var%” 
       pause 

      執(zhí)行后顯示: 
       替換前的值: ” bbs.bathome.cn” 
       替換后的值: ” bbs小情bathome小情cn” 

      這里是把變量%a%里面的”.”全部替換為”小情”,大家多多動(dòng)手練習(xí)就會(huì)了,這個(gè)沒(méi)有什么難的,呵呵~~ 
       —————————————————————————————————– 

       2、字符串截取 
       格式:%a:~[m[,n]]% 
       方括號(hào)表示可選,%為變量標(biāo)識(shí)符,a為變量名,不可少,冒號(hào)用于分隔變量名和說(shuō)明部分,符號(hào)~可以簡(jiǎn)單理解為“ 
       偏移”即可,m 為偏移量(缺省為0),n 為截取長(zhǎng)度(缺省為全部) 
       —————————————————————————————————– 

      例6, 
       @echo off 
       set a=bbs.bathome.cn 
       set var=%a:~1,3% 
       echo %var% 
       pause 

      執(zhí)行顯示為:bs. 
       我們來(lái)分析一下set var=%a:~1,3% ,這里%a:~1,3%就是說(shuō)變量 a偏移量為1,要截取它的3位字符長(zhǎng)度。合起來(lái)就是 
       把變量a 的值從第2 位(偏移量 1)開始,截取3 個(gè)字符賦予變量var 

      例7, 
       @echo off 
       set a=bbs.bathome.cn 
       set var=%a:~1,-3% 
       echo %var% 
       pause 

      執(zhí)行顯示:bs.bathome 
       這里就是把變量a 第2位起到倒數(shù)第3位前的值賦予var 

      例8, 
       @echo off 
       set a=bbs.bathome.cn 
       set var=%a:~-3% 
       echo %var% 
       pause 

      執(zhí)行顯示:.cn 
       這里就是就是把變量a 倒數(shù) 3 位的值賦予變量var 

      例9, 
       @echo off 
       set a=bbs.bathome.cn 
       set var=%a:~-3,2% 
       echo %var% 
       pause 

      執(zhí)行顯示:.c 
      這里就是就是把變量a 倒數(shù) 3 位的值的前2位賦予變量var 
      例10, 
       @echo off 
       set a=bbs.bathome.cn 
       set var=%a:~3% 
       echo %var% 
       pause 

      執(zhí)行顯示:.bathome.cn 
       這里就是把變量a 從第3 位開始后面全部的值給變量var 

      上面這幾個(gè)例子要好好的記住哦,而且不要記錯(cuò)了! 
       我們還是總結(jié)一下吧: 
       a=bbs.bathome.cn 

      %a:~1,3% ——– “bs.” 變量a 偏離1位,截取3位字符。 
      %a:~1,-3% ——– “bs.bathome” 變量a 偏離1位,截取倒數(shù)第3位前的字符。 
      %a:~-3% ——– “.cn” 變量a 偏離-3位,截取倒數(shù)的3位字符。 
      %a:~-3,2% ——– “.c” 變量a 偏離-3位,截取倒數(shù)后3位的前兩2位字符 
      %a:~3% ——– “.bathome.cn”變量a 偏離3位,截取完后面的字符。 
      %a:~,3% ——– “bbs” 變量a 偏離0位,截取3位字符。 
       —————————————————————————————————– 

      我們來(lái)道綜合題:輸入任意字符串,求字符串的長(zhǎng)度 
      例11, 
       @echo off 
       set /p str=請(qǐng)輸入任意長(zhǎng)度的字符串: 
       echo你輸入了字符串:”%str%” 
       call :stringlenth “%str%” num 
       echo字符串長(zhǎng)度為:%num% 
       pause 
       :stringLenth 
       ::字符串長(zhǎng)度計(jì)算子程序 
       set thestring=%~1 
       ::參數(shù)%1 為字符串”%str%”,%~1則去掉”%str%”的雙引號(hào)。 
       if not defined theString goto :eof 
       set Return=0 
       :stringLenth_continue 
       set /a Return =1 
       set thestring=%thestring:~0,-1% 
       ::偏移量為1,截取倒數(shù)第1位前的所有字符。 
       if defined thestring goto stringLenth_continue 
       if not “%2″==”” set %2=%Return% 
       ::參數(shù)%2為返回變量num的名稱,不能含空格或特殊字符。 
       goto :eof 
       —————————————————————————————————– 

       最后,提供一下batmat寫的一個(gè)例子幫助大家對(duì)截取字符的理解吧: 

      例子: 
       @echo off&color a&mode con cols=90 lines=12 
       title 截取字符練習(xí)工具 by bat-zw19750516 
       set var=1234567890一二三四五六七八九零 
       cls&echo.&echo原始圖案為:%var% 
       echo.&echo注意前面有10個(gè)阿拉伯?dāng)?shù)字后面有10個(gè)語(yǔ)文數(shù)字,等下截取后記得看下。 
       echo.&echo命令形式為:%%var:~m,n%%,其中的m為第一個(gè)參數(shù)可負(fù)可正可為零,n為第二個(gè)參數(shù)可負(fù)可正不為零。 
       echo.&echo為了方便重復(fù)練習(xí)沒(méi)有設(shè)置退出,要退出請(qǐng)直接關(guān)閉窗口。 
       echo.&echo請(qǐng)按任意鍵開始練習(xí)。&pause>nul 

      :begin 
       set a=&set b=&set “c=” 
       cls&echo.&set /p a= 請(qǐng)輸入第一個(gè)參數(shù)(應(yīng)為小于20的整數(shù)): 
       echo %a:-=%|findstr “[^0-9]”&&goto wrong 
       if “%a%” equ “” goto wrong 
       if %a% geq 20 goto wrong 
       cls&echo.&set /p b= 請(qǐng)輸入第二個(gè)參數(shù)(應(yīng)為大于-20并不為零的整數(shù)): 
       echo %b:-=%|findstr “[^0-9]”&&goto wrong 
       if “%b%” equ “” goto wrong 
       if %b% equ 0 goto wrong 
       if %b% lss -20 goto wrong 
       set /a c=20-a b 
       if %a% lss 0 if %b% lss 0 if %a% geq %b% goto wrong 
       if %a% gtr 0 if %b% lss 0 if %c% leq 0 goto wrong 
       cls&echo.&echo原始圖案為: %var% 
       echo.&echo你輸入的截取命令是: %%var:~%a%,%b%%% 
       echo.&call,echo截取到的圖案是:%%var:~%a%,%b%%% 
       echo.&echo請(qǐng)按任意鍵再次練習(xí)。&pause>nul&goto begin 

      :wrong 
       cls&echo.&echo輸入不合要求,請(qǐng)正確輸入。&ping /n 2 127.1 >nul&goto begin 
       —————————————————————————————————– 


       三、用set 命令進(jìn)行簡(jiǎn)單計(jì)算 
       格式:set /a expression 
       /a 命令行開關(guān)指定等號(hào)右邊的字符串為被評(píng)估的數(shù)字表達(dá)式。該表達(dá)式評(píng)估器很簡(jiǎn)單并以遞減的優(yōu)先權(quán)順序支持下 
       列操作: 

      ( ) 分組 
       !~– 一元運(yùn)算符 
       */% 算數(shù)運(yùn)算符 
       – 算數(shù)運(yùn)算符 
       << >> 二進(jìn)制邏輯移位 
       & 二進(jìn)制按位“與” 
       ^ 二進(jìn)制按位“異” 
       | 二進(jìn)制按位“或” 
       = *= /= %==-= 算數(shù)賦值 
       &= ^= |= <<= >>= 二進(jìn)制運(yùn)算賦值 
       , 表達(dá)式分隔符 

      set 的/a 參數(shù)就是讓set 可以支持?jǐn)?shù)學(xué)符號(hào)進(jìn)行加減等一些數(shù)學(xué)運(yùn)算, 注意:一般的運(yùn)算常為十進(jìn)制運(yùn)算. 
       —————————————————————————————————– 

      例12, 
       @echo off 
       set /p input=請(qǐng)輸入計(jì)算表達(dá)式: 
       set /a var=%input% 
       echo計(jì)算結(jié)果:%input%=%var% 
       pause 

      注意:DOS 計(jì)算只能進(jìn)行整數(shù)運(yùn)算,精確到整數(shù),它是不支持浮點(diǎn)計(jì)算的! 
      請(qǐng)輸入計(jì)算表達(dá)式:1 9 20 30-10 
       計(jì)算結(jié)果:1 9 20 30-10=50 
       請(qǐng)按任意鍵繼續(xù). . . 

      請(qǐng)輸入計(jì)算表達(dá)式:10/3 #除法只能精確到整數(shù) 
       計(jì)算結(jié)果:10/3=3 
       請(qǐng)按任意鍵繼續(xù). . . 

      請(qǐng)輸入計(jì)算表達(dá)式:-100 62 #負(fù)數(shù) 
       計(jì)算結(jié)果:-100 62=-38 
       請(qǐng)按任意鍵繼續(xù). . . 

      請(qǐng)輸入計(jì)算表達(dá)式:100%3 #求余數(shù) 
       計(jì)算結(jié)果:100%3=1 
       請(qǐng)按任意鍵繼續(xù). . . 

      注意:以上的求余數(shù)運(yùn)算符%在批處理程序中必須寫成%% 
      請(qǐng)輸入計(jì)算表達(dá)式:(25 75)*2/(15 5) #括號(hào) 
       計(jì)算結(jié)果:(25 75)*2/(15 5)=10 
       請(qǐng)按任意鍵繼續(xù). . . 

      請(qǐng)輸入計(jì)算表達(dá)式:1234567890*9876543210 #范圍 
       無(wú)效數(shù)字。數(shù)字精確度限為32位。 
       計(jì)算結(jié)果:1234567890*9876543210= 
       請(qǐng)按任意鍵繼續(xù). . . 

      注意:上面的計(jì)算過(guò)程顯示,DOS 計(jì)算只能精確到32 位,這個(gè) 32 位是指二進(jìn)制32 位,其中最高位為符號(hào)位(0為 
       正,1 為負(fù)),低位31 位為數(shù)值。31 個(gè) 1 換成十進(jìn)制為2147483647,所以DOS 計(jì)算的有效值范圍是-2147483648 
       至2147483647,超出該數(shù)值范圍時(shí)計(jì)算出錯(cuò).請(qǐng)看下面的計(jì)算過(guò)程: 

      請(qǐng)輸入計(jì)算表達(dá)式:2147483647-1 #最大值減 1,值有效 
       計(jì)算結(jié)果:2147483647-1=2147483646 
       請(qǐng)按任意鍵繼續(xù). . . 

      請(qǐng)輸入計(jì)算表達(dá)式:2147483647 1 #最大值加 1,出錯(cuò),結(jié)果為最小值 
       計(jì)算結(jié)果:2147483647 1=-2147483648 
       請(qǐng)按任意鍵繼續(xù). . . 

      請(qǐng)輸入計(jì)算表達(dá)式:-2147483648-1 #最小值減 1,出錯(cuò),結(jié)果為最大值 
       計(jì)算結(jié)果:-2147483648-1=2147483647 
       請(qǐng)按任意鍵繼續(xù). . . 

      我們來(lái)看一看下面的這個(gè)例子 
      例13, 
       @echo off 
       set /a a=1 1,b=2 1,c=3 1 
       echo計(jì)算結(jié)果:%a% %b% %c% 
       pause 

      執(zhí)行顯示:計(jì)算結(jié)果:2 3 4 
      發(fā)現(xiàn)其他數(shù)學(xué)運(yùn)算也有效果!,這就是表達(dá)式分隔符”逗”號(hào)的作用! 
       有時(shí)候我們需要直接在原變量進(jìn)行加減操作就可以用這種語(yǔ)法, 
       set /a var =1對(duì)應(yīng)原始語(yǔ)法就是set /a var = %var% 1 
       set /a var*=2對(duì)應(yīng)原始語(yǔ)法就是set /a var = %var%*2 

      另外還有一些用邏輯或取余操作符,這些符號(hào),按照上面的使用方法會(huì)報(bào)錯(cuò)。比如我們?cè)贑MD 里輸入set /a var=1 & 1 
       “與運(yùn)算”,它并不會(huì)顯示為 1,而是報(bào)錯(cuò),! 
       為什么?對(duì)于這樣的”邏輯或取余操作符”,我們需要把他們用雙引號(hào)引起來(lái),也可以用轉(zhuǎn)義字符^,看例子set /a var= 
       1 “&” 1這樣結(jié)果就顯示出來(lái)了。 

      其他邏輯或取余操作符用法: 
       set /a var= 1 ” ” 1異運(yùn)算 
       set /a var= 1 “%” 1 取模運(yùn)算 
       set /a var= 3 “<<” 2左移位運(yùn)算,3 的二進(jìn)制為11,左移2 位為 1100,換成十進(jìn)制就是12,自行驗(yàn)證 
       set /a var= 4 “>>” 2 右移位運(yùn)算,4 的二進(jìn)制為100,右移動(dòng)2 位為 1,結(jié)果為1 

      注意:凡是按位計(jì)算均需換算成二進(jìn)制,然后再計(jì)算。 
      思考題:求2 的n 次方 
      參考答案:   例14,   @echo off 
       set /p n=請(qǐng)輸入2 的幾次方: 
       set /a num=1^<^ echo %num% 
       pause 

      想一下這個(gè)到底是怎么運(yùn)算的?呵呵,這就留給大家思考了! 
       —————————————————————————————————– 

      Janunapr 編輯于2009-09-14 星期一11:45:57.46 

      轉(zhuǎn)載請(qǐng)注明:免費(fèi)實(shí)用綠色軟件 >> 批處理命令學(xué)習(xí)之:set命令詳解

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多