導航:首頁 > 編程語言 > bat編程入門

bat編程入門

發布時間:2025-01-27 09:58:51

㈠ 如何用BAT語法格式編程

BAT文件可以通過使用特定的命令和語法來修改窗口標題、大小、字體及背景顏色。
1. 修改窗口標題:
在BAT文件中,我們可以使用「title」命令來修改窗口的標題。例如,以下代碼會將窗口標題設置為「歡迎使用BAT文件」:
@echo off
title 歡迎使用BAT文件
echo 這是BAT文件的一個例子。
當用戶運行這個BAT文件時,窗口的標題會顯示為「歡迎使用BAT文件」。
2. 修改窗口大小和位置:
要修改窗口的大小和位置,我們可以使用「mode」命令。例如,以下代碼會將窗口大小設置為寬度400像素,高度300像素,並將窗口放置在屏幕的左上角:
@echo off
mode con cols=400 lines=300
window pos=0,0
echo 這是BAT文件的一個例子。
在這個例子中,「cols」參數指定了窗口的寬度,「lines」參數指定了窗口的高度,「window pos」命令用於設置窗口在屏幕上的位置。
3. 修改字體和背景顏色:
要修改字體和背景顏色,我們可以使用「color」命令。例如,以下代碼會將字體顏色設置為紅色,背景顏色設置為黃色:
@echo off
color 4e
echo 這是BAT文件的一個例子。
在這個例子中,「4」代表紅色字體,「e」代表黃色背景。可以在命令行窗口中輸入「color /?」來獲取更多顏色和屬性的信息。
需要注意的是,BAT文件的修改窗口屬性功能相對有限,無法實現一些高級效果,如漸變色、透明度等。此外,BAT文件的界面效果也受到用戶電腦解析度、字體設置等因素的影響,因此在實際使用時可能需要進行一些調整和優化。

㈡ 怎麼編寫.bat

比如寫個BAT的批處理文件吧··你可以先知道新建一個文本,後綴改為.BAT,下面是一些常用的命令:我也來做復制黨···· @echo offecho的意思是迴旋,這里的意思就是回顯,echooff意思就是關閉回顯.前面的@表示echo off 這一行也不會回顯你可以試著去掉@和整行去掉.@的另一個功能是在執行完批處理文件時自動恢復命令回顯。如果第一句用的是ECHO OFF,那麼在執行完批處理文件以後不會顯示命令提示符。舉個例子:如果我們先創建一個1.bat文件,往裡面輸入:dir 然後保存在c:\下.然後我們運行cmd,進入c盤根目錄下,輸入1.bat,則顯示:C:>dir
驅動器 C 中的卷沒有標簽。
卷的序列號是 0C5D-07FFC: 的目錄2004-08-25 00:45 <DIR> WINDOWS
2004-08-25 00:51 <DIR> Documents and Settings...........C:如果將1.bat內容修改成echo offdir然後再在cmd里輸入1.bat,則會顯示 C:>echo off//因為運行了echooff,所以沒有顯示dir命令,直接顯示了結果
驅動器 C 中的卷沒有標簽。
卷的序列號是 0C5D-07FFC: 的目錄2004-08-25 00:45 <DIR> WINDOWS
2004-08-25 00:51 <DIR> Documents and Settings.....C:如果將1.bat文件修改成:@echo off
dir則顯示成:C:>1.bat //與前面不同,並沒有顯示echooff,原因是加了@,所以不顯示@後面的內容.又因為加//了echooff,所以後面的命令不顯示,直接顯示結果
驅動器 C 中的卷沒有標簽。
卷的序列號是 0C5D-07FFC: 的目錄2004-08-25 00:45 <DIR> WINDOWS
2004-08-25 00:51 <DIR> Documents and Settings....C:通過以上的比較,相信你對echooff命令已經充分掌握了.現在已經1點了...寫得累啊!!!洗澡睡覺去了----------------------早晨6點就被拉起來了...我命苦啊,那麼繼續寫吧----------------------接下來講的是call命令:call是打電話的call,而不是"喔靠"的靠:).call的意思為調用.假如有2個批處理文件a.bat和b.bat.如果我想運行a.bat的當中運行b.bat.如何運行呢?其實很簡單,只要在a.bat文件中輸入call命令,則可以在a.bat運行的當中,運行b.bat,等b.bat運行完之後,繼續執行a.batcall命令格式:CALL [drive:][path]filename [batch-parameters] batch-parameters 指定批處理程序所需的命令行信息。舉例如下,我們在c盤根目錄下創建a.bat文件,內容為:echothis is a.batcall d:b.batecho done然後在d盤根目錄下創建b.bat,內容為:echo this is b.bat保存後,打開cmd,進入c盤根目錄,然後輸入1.bat,顯示如下:C:>a.batC:>echo this is a.bat
this is a.batC:>call d:b.batC:>echo this is b.bat
this is b.batC:>echo done
done由例子很容易看出來,是先運行a.bat的內容,直到遇到callb.bat後,則調用b.bat,運行完b.bat後,再返回a.bat接著運行callb.bat後面的echodone語句,直至將a.bat的所有批處理命令運行完.註:裡面有個[batch-parameters]裡面的所指的參數是什麼,知道的朋友能否告知,不勝感激.PAUSE 命令

暫停批處理程序的執行並顯示一條消息,提示用戶按任意鍵繼續執行。只能在批處理程序中使用該命令。rem命令:表示此命令後的字元為解釋行(注釋),不執行,只是給自己今後參考用的(相當於程序中的注釋).同時你可以用兩個冒號來替代rem.如:::等同於一個rem.但他們有個區別,就是用::作注釋的話他是不回顯的,即使你打echoon強制回顯也沒有同的.同時rem可以在config.sys中加註釋.語法: rem[commnet]批處理文件參數:有點編程基礎的人都知道函數有參數.批處理文件也有參數.我打個比方,希望能幫助沒有語言基礎的人也能看的非常明白.我從例子里開始吧.首先在c盤根目錄下創建一個批處理文件 a.bat,裡面輸入內容echo %1然後打開cmd,然後進入c盤根目錄.輸入:a "this is a canshu"得到結果如下:C:>a.bat "this is a test"C:>echo "this is a test"
"this is a test"輸入的a "this is a canshu"中,a為新建的a.bat的文件名a(後面的.bat可寫也可不寫),而a後面的"this is a canshu"這句話就是參數,寫在這的參數,在程序運行中就將參數自動放到批處理程序中去.那麼放在什麼位置呢?就是放在%1的地方.看了例子,讓我們看看整個關於參數的定義如何:批處理文件還可以像C語言的函數一樣使用參數(相當於DOS命令的命令行參數),這需要用到一個參數表示符"%"。
%[1-9]表示參數,參數是指在運行批處理文件時在文件名後加的以空格(或者Tab)分隔的字元串。變數可以從%0到%9,%0表示批處理命令本身,其它參數字元串用%1到%9順序表示。//我們上個程序的例子里就有%1,他就是參數,而輸入中"thisisatest"作為參數就直接放到%1的位置,於是程序就變成了 echo "this is a test".再舉幾個例子幫助你理解:C:根目錄下一批處理文件名為b.bat,內容為:
@echo off
type %1 //type為dos中的輸出命令,可以用來輸出文本文件的內容,比如我們新建一個1.txt文件//裡面輸入內容,保存.進cmd,如果輸入1.txt則看不了1.txt文件內容,但是如果我//想看怎麼辦呢?這時候可以用type命令,只要在cmd里輸入type1.txt就能顯示//1.txt文件中的內容了
type %2

那麼運行C:>b a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt 於是上面的批處理命令就變成了@echo offtype a.txttype b.txt
於是上面的命令將順序地顯示a.txt和b.txt文件的內容。沒有編程基礎的人可能要問,干什麼要弄個參數啊?在後面加個參數多麻煩啊?直接往裡面寫不就好了啊?!其實這樣想有對的方面也有錯的方面.還是舉個例子說明吧.第一步還是在c盤根目錄下新建一個批處理文件,我們取名仍為a.bat.往裡面的內容輸入為:ping %1//ping命令可以簡單理解為測試一台機器開著還是沒有開,如果開著的話,他就回給你回送回應.然後進cmd,我們想測試下163的伺服器是不是開著,則輸入a www.163.com對於知道ping命令的人,可以打ping進行檢查,但如果想ping的人不知道ping命令怎麼用,那怎麼辦啊?這時候你就可以把命令預先輸入到批處理文件中,保存好,然後讓不會用的人進cmd,運行你的批處理文件,文件名後面加上他要ping的網站地址就行了.換句話說,他想ping163就直接加163的網址,想pingsina就直接加sina的網址.這樣只要輸入一個參數,而不用改程序本身,整個程序的通用性就大大提高了.這是對於一個簡單的ping命令,你或許覺得用參數不值得,還是直接改不就好了啊.但如果程序有很多條,你一下找不到在哪改怎麼辦啊?所以,不管你是菜哥,菜弟,菜姐,菜妹,只要運行下,輸入參數,結果自己就會出來,不用再象你一樣,考慮怎麼編寫批處理文件.人家只要知道是輸入什麼東西能讓批處理程序運行,而編寫的人則想的是如何讓不懂程序的人能運行程序.批處理參數就這么簡單,不知道你理解了沒有?但如果你想深一步了解批處理參數,可以接著往下看,如果不想深入了解,知道現在這么多也就夠了.以下粉紅色內容為網上資料.====================================因為參數只有1%-9%,但當我們要引用第十個或更多個參數時, 就必須移動DOS 的參數起始指針. shift 命令正充當了這個移動指針的角色, 它將參數的起始指針移動到下一個參數, 類似C 語言中的指針操作. 圖示如下: 初始狀態, cmd 為命令名, 可以用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 經過1次shift後, cmd 將無法被引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 經過2次shift後, arg1也被廢棄, %9指向為空, 沒有引用意義
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 遺憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 內核命令行環境下, shift 才支持 /n 參數, 可以以第一參數為基準返復移動起始指針.
================= if goto choice for高級語法今天就寫到這吧,我收拾收拾東西准備滾蛋回學校了.可能ifgotochoicefor高級語法要在沈陽才能完成了,祝我好運吧.======================學校的"網吧"終於算重新開張了,抓緊時間把剩下的寫完if命令說得通俗點,if就相當於我們白話里的如果.舉個例子:如果a喜歡b,那麼a就要娶b.這句話翻譯成計算機語言就成了ifa喜歡ba就要娶b.當然拉,計算機不可能理解a喜歡b,a就要娶b這兩句話,這里只是舉個例子讓你方便理解.if語句一共有3種模式,如下:
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
IF [NOT] ERRORLEVEL number commandNOT 指定只有條件為 false 的情況下, Windows XP 才應該執行該命令。ERRORLEVEL number 如果最後運行的程序返回一個等於或大於指定數字的退出編碼,指定條件為 true。string1==string2 如果指定的文字字元串匹配,指定條件為 true。EXIST filename 如果指定的文件名存在,指定條件為 true。command 如果符合條件,指定要執行的命令。如果指定的條件為 FALSE,命令後可跟一個執行 ELSE關鍵字後的命令的 ELSE 命令。我們先講解第一種:IF [NOT] string1==string2 command自然語句意思:如果string1==string2,那麼執行command下面再舉個能實際應用的if語句.自然語句:如果輸入的參數為3,那麼顯示"a=3"計算機語句:@echo off
if "%1"=="3" echo "a=3"或者寫成@echo off
if %1==3 echo "a=3"注意:當要測試的時候,因在cmd底下,輸入1.bat 3.因為這里用了是傳遞參數,具體看文章前部分"批處理文件參數".第二種:IF [NOT] EXIST filename command這條命令用語檢測文件是否存在.如果存在,執行command.如果不存在,則什麼也不顯示.如:我們想檢查e盤根目錄下是否有一個叫2.txt的文件.如果存在,則顯示exist.如果不存在,則什麼也不顯示.批處理命令如下:@echo off
if exist e:2.txt echo "exist 2.txt"第三種:IF [NOT] ERRORLEVEL number command這個我引用點資料,感覺別人寫得更詳細,引用部分為粉色字部分:if errorlevel <數字> 待執行的命令 很多DOS程序在運行結束後會返回一個數字值用來表示程序運行的結果(或者狀態),通過if errorlevel命令可以判斷程序的返回值,根據不同的返回值來決定執行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等於指定的數字,則條件成立,運行命令,否則運行下一句。 如if errorlevel 2 goto x2 ==== 注 ===========
返回值從大到小的順序排列不是必須的, 而只是執行命令為 goto 時的習慣用法, 當使用 set 作為執行命令時, 通常會從小到大順序排列, 比如需將返回碼置入環境變數, 就需使用以下的順序形式: if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
if errorlevel 4 set el=4
if errorlevel 5 set el=5
... 當然, 也可以使用以下循環來替代, 原理是一致的:
for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e //此處為一個for循環,後面會繼續介紹到的,看不懂可以先跳過去if errorlevel 比較返回碼的判斷條件並非等於, 而是大於等於. 由於 goto 的跳轉特性, 由小到大排序會導致在較小的返回碼處就跳出; 而由於 set命令的 "重復" 賦值特性, 由大到小排序會導致較小的返回碼 "覆蓋" 較大的返回碼. 另外, 雖然 if errorlevel=<數字> command 也是有效的命令行, 但也只是 command.com 解釋命令行時將 = 作為命令行切分符而忽略掉罷了
choice命令????goto命令for命令for命令其實就是一個循環命令,如果我們想重復一個語句,就可以用for命令.通過for命令,可以控制循環的次數等.語法:FOR %variable IN (set) DO command [command-parameters] %variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %I.不知道你你看懂了沒有,其實還是很容易理解的,還是舉個例子吧.我想用type列印所有c盤根目錄下的bat文件和txt文件.dos底下命令就是type*.bat*.txt.先將該文件保存在c盤根目錄下,名稱為a.bat用for命令如下:for %%t in (*.bat *.txt) do type %%t%%t其實就是代表的一個參數,他的內容在in() 裡面括弧里的內容.也就是說這句話里的%%t就變成了*.bat *.txt了.do就是做的意思,執行type命令,而type後面是%%t,而%%t又是*.bat *.txt.所以原來這句命令的意思就變成了:type *.bat *.txt執行時進cmd,然後到c盤根目錄下輸入a.bat就可以列印出c盤根目錄下所有擴展名為.bat和.txt的文件內容了.這里要注意:in後面有個空格.在xp底下,for命令擴展名被起用因此for的功能變得更加強大.下面講一個真正的循環.
FOR /L %variable IN (start,step,end) DO command [command-parameters] 該集表示以增量形式從開始到結束的一個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
序列 (5 4 3 2 1)裡面第一個1在start的位置,意思是起始位置,第2個1在step位置,英文意思是跨步,在這裡面的意思是每次增量為1.後面的5在end的位置,意思是結束時的大小.這句話的意思就是從1(start)開始增加,每次增加1(step),一直到變到5(end)為止.這個有什麼用呢?其實我感覺這個東西的用處還是很大的.舉個最簡單的例子,我們想重復回顯"i am the best"這句話,重復顯示10遍.那麼for命令如下:for /L %%e in (1,1,10) do echo "i am the best"這時,cmd就會重復輸入"i am the best"10遍.===============================================看完整篇文章了嗎?咳...我寫的不容易啊....現在不知道你對bat有了什麼樣的理解,我現在的感覺就是bat就是dos命令的組合,你把dos命令全寫進bat命令,只要運行下bat就會挨個執行dos命令,這無疑提供了不少的方便。下面我再舉些實例.刪除默認共享:對於默認共享不知道你了解多少,反正留著是個隱患,現在唯一的辦法好象只能做個bat文件進行刪除.命令如下:net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete
net share e$ /delete……裡面的cde為你的盤符。如果你只有一個分區,那麼寫到net share c$ /delete為止就可以了。如果你有n個分區,那麼就挨個寫下去。net share d$ /delete
net share e$ /deletenet share f$ /deletenet share g$ /delete……登陸到區域網的機器快捷方式(對方機器有密碼且為2000或以上系統)net use \192.168.0.1 [密碼] /user:[用戶名]
explorer \192.168.0.1bat文件備份注冊表set regfile=%date% //設置變數,下面出現%regfile%的都自動替換「當天date」if exist "%regfile%" goto end //如果發現當天date命名的目錄,跳到文件尾。
md temp //建temp目錄
call 1.bat //調用1.bat
del 1.bat
ren 2.bat 1.bat
ren 3.bat 2.bat
ren 4.bat 3.bat
echo move "%regfile%" temp >4.bat //寫 移動「當天date命名的目錄」到temp的bat文件 。md "%regfile%" //建當天date命名的目錄
cd "%regfile%" //進入reg export hkcu hkcu.reg //導出注冊表
reg export hklm hklm.reg
//HKEY_CURRENT_USER 縮寫hkcu 。存放當前用戶個人數據
//HKEY_LOCAL_MACHINE 縮寫hklm 。系統的核心數據
cd..
deltree /y temp >nul ////返回上級目錄 ,刪temp文件夾
:end

㈢ 如何用BAT編程語言關機

在Windows環境下,使用BAT(批處理)編程語言實現關機操作非常簡單,主要通過調用系統命令`shutdown`來實現。以下是一個基本的BAT腳本示例,用於立即關機:

```batch
@echo off
echo 正在准備關機...
shutdown -s -t 0
```

在這個腳本中:

- `@echo off` 命令用於關閉命令的回顯,即執行時不在命令行界面顯示這些命令本身,使得輸出更加簡潔。
- `echo 正在准備關機...` 命令用於在命令行界面上顯示一條消息,告知用戶正在進行的操作,雖然這不是必需的,但可以提高用戶體驗。
- `shutdown -s -t 0` 是實現關機的關鍵命令。其中,`-s` 參數指定了關機操作,`-t 0` 指定了延遲時間為0秒,即立即執行關機。如果不加 `-t 0`,系統會默認在30秒後關機,並允許用戶取消。

整個腳本的作用是,在命令行界面不顯示命令本身的情況下,顯示一條「正在准備關機...」的消息,並立即執行關機操作。這是通過BAT編程語言實現的一個非常基礎的關機功能。

閱讀全文

與bat編程入門相關的資料

熱點內容
車上的app怎麼重設 瀏覽:22
指定文件夾屬性 瀏覽:131
linuxphp編程 瀏覽:335
以下不正確的是雲伺服器 瀏覽:909
琉璃神社壓縮密碼 瀏覽:715
大一學生解壓視頻 瀏覽:373
單位電腦e盤加密輸入正確密碼 瀏覽:873
phpfileupload 瀏覽:634
刑拘程序員 瀏覽:615
51單片機飛行器 瀏覽:166
安卓如何應用息屏工作 瀏覽:21
iphone怎麼找到安裝過的app 瀏覽:39
我的世界的伺服器ip地址和埠 瀏覽:535
鎮江程序員接私活有什麼途徑 瀏覽:172
java繼承與覆蓋 瀏覽:339
電腦版我的世界如何安裝伺服器 瀏覽:12
為什麼安卓手機玩不了水果忍者 瀏覽:358
穿jk上班的男程序員 瀏覽:553
php列印請求頭 瀏覽:605
對點傳輸app怎麼設置 瀏覽:874