国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > BAT > 正文

批處理(bat)命令學(xué)習(xí)的一些總結(jié)

2020-06-09 14:25:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、set 篇:

1、set(無(wú)開(kāi)關(guān))

set .=test
set.
::若一個(gè)變量以:/.這三個(gè)與路徑相關(guān)的符號(hào)開(kāi)頭,用set查看以該字符打頭的變量時(shí)可以省去一個(gè)空格。
echo %tmp:*/=%
::顯示tmp變量第一個(gè)/之后的部分,其余變量替換與變量偏移太簡(jiǎn)單不解釋

2、set /p 變量名=注釋<設(shè)備名
當(dāng)設(shè)備名為文件時(shí),因?yàn)槲募袚Q行符與回車(chē)符伴生,所以只取文件第一行作為var變量的內(nèi)容,但是不超過(guò)1024字節(jié);而當(dāng)設(shè)備名為nul或者com3時(shí),只顯示不換行的注釋,這種情況下可以省略變量名(如:set /p=Hello World

3、set /a,最具技巧的命令之一

set /a n=1,m=2
::同時(shí)把不同數(shù)值分別賦予兩個(gè)變量
set /a a=b=c=d=e=f=1
::用一條算式為多個(gè)變量同時(shí)賦值
set /a "1/n" 2>nul||echo 變量n非純數(shù)字或?yàn)榱?br />::利用分母不能為0的特征,用set判斷一個(gè)變量是否為非零純數(shù)字
set n=1
set /a "n=!!123|!!234&!!0"
::位運(yùn)算,!、^、|和&常用于布爾運(yùn)算,而邏輯位移常用于二進(jìn)制運(yùn)算(>>還可判斷數(shù)值是否為負(fù),見(jiàn)下例)
set /a n=-100,"1/(-100>>31)"||echo 變量n為負(fù)數(shù)
::順應(yīng)cmd中的正負(fù)數(shù)存儲(chǔ)特點(diǎn),可以用邏輯位移實(shí)現(xiàn)判斷正負(fù)數(shù)的“布爾運(yùn)算”,可以衍生出繁多的算法,比如稍加改動(dòng)就可以比較兩數(shù)甚至多個(gè)數(shù)的大小
set /a n=~-100
::利用~將所有二進(jìn)制的1、0逆轉(zhuǎn),負(fù)號(hào)在后或在前配合可以實(shí)現(xiàn)簡(jiǎn)單加1或減1,這個(gè)技巧主要用來(lái)減少括號(hào)的使用,因?yàn)閪號(hào)與負(fù)號(hào)的優(yōu)先級(jí)都是高于算數(shù)運(yùn)算符的
set /a test=%test:~5,1%-0
::可以避免%test:~5,1%為空時(shí)出錯(cuò)的情況
set /a 十進(jìn)制=0x十六進(jìn)制,十進(jìn)制=0八進(jìn)制
::快速將十六進(jìn)制與八進(jìn)制數(shù)轉(zhuǎn)為十進(jìn)制,可惜沒(méi)有二進(jìn)制...
:loop
set /a n+=1001
echo %n:~-3%
goto loop
::這比常規(guī)的補(bǔ)位方法更優(yōu)越
for %%a in (test 123 ABC test @#$ 123) do set /a ".%%a+=1"
set .|findstr /v /e "=1"
::經(jīng)典的獲取字符串的重復(fù)次數(shù)的方案

二、for 篇:

這是批處理中最強(qiáng)的內(nèi)部命令,沒(méi)有之一!

1、for(無(wú)開(kāi)關(guān))

復(fù)制代碼 代碼如下:

for %%a in (c:/*.*) do echo %%a
::顯示C盤(pán)根目錄下所有非隱藏、非系統(tǒng)屬性文件
for %%a in (./..) do echo %%~nxa
::顯示上一級(jí)目錄的文件夾名
set str=123,234,345
set str=%str:,=/%
for %%a in (%str%/..) do echo %%~nxa
::用前一個(gè)技巧,巧取倒數(shù)第二段字符串,與for /f "delims=/"相映成趣
for %%a in (*.txt) do (
for /f "useback delims=" %%b in ("%%a") do (
set str=%%b
for %%c in ("!str:分隔符=" "!") do (
for /f "tokens=1*" %%d in (%%c) do echo %%~d
)
)
)

::不帶參數(shù)的for與for /f配合,威力極大,僅舉此一例

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永胜县| 湖州市| 延安市| 万源市| 鞍山市| 晋州市| 奉节县| 资溪县| 沙田区| 浦东新区| 酒泉市| 佛教| 黔西| 冀州市| 正镶白旗| 绍兴市| 林口县| 丹阳市| 东山县| 黑龙江省| 右玉县| 布拖县| 开江县| 隆化县| 九龙县| 五寨县| 潜江市| 贵溪市| 龙岩市| 石台县| 惠来县| 镇康县| 梁平县| 来凤县| 宁城县| 昔阳县| 公主岭市| 宜章县| 明星| 饶阳县| 邵阳市|