bat文件常用語法學(xué)習(xí)

1.echo命令

①echo 用于顯示此命令后的字符议纯。

echo Hello World!

PAUSE

注:pause是用來暫停的,直到用戶輸入任意鍵關(guān)閉溢谤。

結(jié)果:

E:\>echo Hello World!

Hello World!

E:\>PAUSE

請(qǐng)按任意鍵繼續(xù). . .


②echo off 表示此命令后的所有命令都不顯示命令本身瞻凤。

③@ 與echo off相似憨攒,但只是不顯示當(dāng)行的命令。

@echo off 是經(jīng)常組合放在開頭的阀参。

@echo off

echo Hello World!

PAUSE

結(jié)果:

Hello World!

請(qǐng)按任意鍵繼續(xù). . .

2.注釋

①rem

②::

@echo off

echo Hello World!

rem 我是一個(gè)注釋

:: 巧了我也是一個(gè)注釋

PAUSE

結(jié)果:

Hello World!

請(qǐng)按任意鍵繼續(xù). . .

3.參數(shù)標(biāo)識(shí)符??%

①代表參數(shù)

%[1-9]表示參數(shù)肝集,參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9蛛壳,%0表示批處理命令本身杏瞻,其它參數(shù)字符串用%1到%9順序表示。

@echo off

type %1

type %2

pause

使用cmd衙荐,進(jìn)入到對(duì)應(yīng)目錄下:

E:\>test a.txt b.txt

我是a我是b請(qǐng)按任意鍵繼續(xù). . .

注:test是我們寫入內(nèi)容的bat文件捞挥,a.txt和b.txt分別是當(dāng)前目錄下的兩個(gè)txt,內(nèi)容分別為“我是a”和“我是b”忧吟。

或者也可以新創(chuàng)建一個(gè)bat文件調(diào)用剛才寫的bat文件:

@echo off

call test a.txt b.txt

pause

②非for語句引用變量

@echo off

set a=HelloWorld!

echo %a%

pause

注意:“set a=HelloWorld!”這句砌函,由于編程習(xí)慣,原意在等號(hào)兩邊加空格溜族,但是這樣的話就會(huì)出現(xiàn)“ECHO處于關(guān)閉狀態(tài)”的錯(cuò)誤了讹俊。

結(jié)果:

HelloWorld!

請(qǐng)按任意鍵繼續(xù). . .

③for語句要用“%%”

@echo off

for %%i in (1 2 3 4 5) do echo %%i

pause

結(jié)果:

1

2

3

4

5

請(qǐng)按任意鍵繼續(xù). . .

4. call

①調(diào)用另一個(gè)bat文件

@echo off

echo 調(diào)用另一個(gè)bat文件:

call another

pause

another.bat:

@echo off

echo 我是另一個(gè)bat文件

pause

結(jié)果:

調(diào)用另一個(gè)bat文件:

我是另一個(gè)bat文件

請(qǐng)按任意鍵繼續(xù). . .

②帶參數(shù)的

test.bat:

@echo off

echo %0 %1

pause

another.bat:

@echo off

call test.bat 我是參數(shù)

pause

運(yùn)行another.bat,結(jié)果:

test.bat 我是參數(shù)

請(qǐng)按任意鍵繼續(xù). . .

③call一個(gè)應(yīng)用程序(但一般都用start)

④call一個(gè)標(biāo)簽

@echo off

call :b

start notepad.exe

exit

:b

start b.txt

結(jié)果:

先打開b.txt煌抒,然后打開了記事本仍劈。

5. if

用于判斷,類似C語言的if

①字符串判斷

if [not] "參數(shù)" == "字符串" 待執(zhí)行的命令

another.bat:

@echo off

call test.bat a

pause

test.bat

@echo off

if not "%1"=="a" (echo 參數(shù)不是a)else (echo 參數(shù)是a)

pause

注意:判斷結(jié)束后寡壮,要和“(”之間留一個(gè)空格贩疙,“else”也要和“(”之間留一個(gè)空格。

運(yùn)行結(jié)果:

參數(shù)是a

請(qǐng)按任意鍵繼續(xù). . .

②判斷數(shù)值相等

@echo off

if 1 equ 2 (echo 1等于2) else (echo 1不等于2)

pause

結(jié)果:

1不等于2

請(qǐng)按任意鍵繼續(xù). . .

注:大于不能使用符號(hào)“>”诬像,而應(yīng)該使用GTR屋群。

EQU - 等于

NEQ - 不等于

LSS - 小于

LEQ - 小于或等于

GTR - 大于

GEQ - 大于或等于

③文件判斷

@echo off

if exist e:\b.txt (echo e盤下有b.txt) else (echo e盤下沒有b.txt)

pause

結(jié)果:

e盤下有b.txt

請(qǐng)按任意鍵繼續(xù). . .

④判斷某個(gè)變量是否已經(jīng)被賦值闸婴,用 if defined str 語句

@echo off

set str=HelloWorld!

if defined str (echo 變量的值為%str%) else (echo 變量沒有被賦值)

pause

結(jié)果:

變量的值為HelloWorld!

請(qǐng)按任意鍵繼續(xù). . .

⑤ if結(jié)合errorlevel使用

@echo off

xcopy e:\b.txt f:\

if errorlevel 1 echo 文件拷貝失敗

if errorlevel 0 echo 文件拷貝成功

pause

注:返回值必須按照從大到小的順序排列坏挠。

結(jié)果:

E:\b.txt

復(fù)制了 1 個(gè)文件

文件拷貝成功

請(qǐng)按任意鍵繼續(xù). . .

幾個(gè)常用命令的返回值及其代表的意義:

diskcomp

0 盤比較相同

1 盤比較不同

2 用戶通過ctrl-c中止比較操作

3 由于致命的錯(cuò)誤使比較操作中止

4 預(yù)置錯(cuò)誤中止比較

diskcopy

0 盤拷貝操作成功

1 非致命盤讀/寫錯(cuò)

2 用戶通過ctrl-c結(jié)束拷貝操作

3 因致命的處理錯(cuò)誤使盤拷貝中止

4 預(yù)置錯(cuò)誤阻止拷貝操作

format

0 格式化成功

3 用戶通過ctrl-c中止格式化處理

4 因致命的處理錯(cuò)誤使格式化中止

5 在提示"proceed with format(y/n)?"下用戶鍵入n結(jié)束

xcopy

0 成功拷貝文件

1 未找到拷貝文件

2 用戶通過ctrl-c中止拷貝操作

4 預(yù)置錯(cuò)誤阻止文件拷貝操作

5 拷貝過程中寫盤錯(cuò)誤

6. goto

goto是跳到指定的標(biāo)簽位置

@echo off

goto end

echo 這里是結(jié)束標(biāo)簽之前的顯示

:end

echo 這里是結(jié)束標(biāo)簽

pause

結(jié)果:

這里是結(jié)束標(biāo)簽

請(qǐng)按任意鍵繼續(xù). . .

7. for

(1) /f

①/f 解析文本讀取字符串

@echo off

for /f %%i in (歌曲列表.txt) do echo %%i

pause>nul

結(jié)果:

序號(hào)、歌手名-歌曲名.后綴名

1邪乍、徐秉龍/桃十五-空心.MP3

2降狠、是阿涵啊-不斷電.mp3

3、河豚-二號(hào)位.MP3

4庇楞、原·味-褐瞳.lrc

5榜配、徐薇-空心.mp3

可以顯示文件的內(nèi)容。如果去掉“/f”吕晌,并且把“歌曲列表.txt”改成“*.txt”蛋褥,就可以搜索當(dāng)前目錄下txt文件并顯示文件名:

@echo off

for %%i in (*.txt) do echo %%i

pause>nul

結(jié)果:

b.txt

歌曲列表.txt

② delims

做分隔符使用,只會(huì)保留分隔符之前的內(nèi)容睛驳。

@echo off

for /f "delims=-" %%i in (歌曲列表.txt) do echo %%i

pause>nul

結(jié)果:

序號(hào)烙心、歌手名

1膜廊、徐秉龍/桃十五

2、是阿涵啊

3淫茵、河豚

4爪瓜、原·味

5、徐薇

注:若要填入多個(gè)分隔符匙瘪,則寫在等號(hào)后就好铆铆,中間無需加空格

③ tokens

選定分割之后的內(nèi)容。

@echo off

for /f "tokens=1,2 delims=丹喻、." %%i in (歌曲列表.txt) do echo %%i %%j

pause>nul

結(jié)果:

序號(hào) 歌手名-歌曲名

1 徐秉龍/桃十五-空心

2 是阿涵啊-不斷電

3 河豚-二號(hào)位

4 原·味-褐瞳

5 徐薇-空心

說明:

tokens=有時(shí)表示提取全部薄货。

tokens=m表示提取第m列。

tokens=m,n表示提取第m列和第n列碍论。

tokens=m-n表示提取第m列至第n列菲驴。

Tokens=*表示刪除每行前面的空格。忽略行首的所有空格骑冗。

tokens=m*提取第m列以后的所有字符赊瞬,星號(hào)表示剩余的字符。

tokens=m,*提取第m列以后的所有字符贼涩,星號(hào)表示剩余的字符巧涧。

“%%i %%j”對(duì)應(yīng)于“token”后面的列數(shù)。有多少列就要有多少個(gè)輸出變量遥倦,并且各變量中的字母存在先后順序谤绳。

(2)?/L

/L參數(shù)是以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列的迭代數(shù)值范圍。

@echo off

for /l %%i in (1,1,5) do @echo %%i

pause

結(jié)果:

1

2

3

4

5

請(qǐng)按任意鍵繼續(xù). . .



8. rd

刪除文件夾

① rd d:\test

只能刪除空的文件夾袒哥,否則會(huì)提示:目錄不是空的缩筛。

② rd /s test

能達(dá)到刪除文件夾的作用,但是會(huì)詢問是否確認(rèn)(Y/N)?

③ rd /q /s test

安靜模式堡称,帶 /S 刪除目錄樹時(shí)不要求確認(rèn)瞎抛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市却紧,隨后出現(xiàn)的幾起案子桐臊,更是在濱河造成了極大的恐慌,老刑警劉巖晓殊,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件断凶,死亡現(xiàn)場離奇詭異,居然都是意外死亡巫俺,警方通過查閱死者的電腦和手機(jī)认烁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人却嗡,你說我怎么就攤上這事次伶。” “怎么了稽穆?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵冠王,是天一觀的道長。 經(jīng)常有香客問我舌镶,道長柱彻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任餐胀,我火速辦了婚禮哟楷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘否灾。我一直安慰自己卖擅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布墨技。 她就那樣靜靜地躺著惩阶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扣汪。 梳的紋絲不亂的頭發(fā)上断楷,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音崭别,去河邊找鬼冬筒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛茅主,可吹牛的內(nèi)容都是我干的舞痰。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼诀姚,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼响牛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起学搜,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤娃善,失蹤者是張志新(化名)和其女友劉穎论衍,沒想到半個(gè)月后瑞佩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坯台,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年炬丸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稠炬,死狀恐怖焕阿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情首启,我是刑警寧澤暮屡,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站毅桃,受9級(jí)特大地震影響褒纲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钥飞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一莺掠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧读宙,春花似錦彻秆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桦锄,卻和暖如春幔亥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背察纯。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工帕棉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饼记。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓香伴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親具则。 傳聞我的和親對(duì)象是個(gè)殘疾皇子即纲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 個(gè)人學(xué)習(xí)批處理的初衷來源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求博肋,從而在測(cè)試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,733評(píng)論 0 11
  • 批處理符號(hào)簡介 回顯屏蔽 @ 重定向1 >與>> 重定向2 < 管道符號(hào) | 轉(zhuǎn)義符 ^ 邏輯命令符包括:&低斋、&&...
    wyude閱讀 2,995評(píng)論 2 5
  • 部分內(nèi)容轉(zhuǎn)載自搜狗百科 cmd是command的縮寫.即命令提示符(CMD),是在OS / 2 匪凡, Windows...
    青冥之上閱讀 2,396評(píng)論 0 24
  • win7 cmd管理員權(quán)限設(shè)置 net localgroup administrators 用戶名 /add 把“...
    f675b1a02698閱讀 5,222評(píng)論 0 11
  • 去年膊畴,心血來潮買了一套練字帖,里面有配套筆和那個(gè)紅色的病游,我一直都不知道這個(gè)紅色的是干嘛用的唇跨,還嘀咕這個(gè)筆握著不舒服...
    雋媽雜記閱讀 387評(píng)論 3 2