導航:首頁 > 電腦系統 > 電腦點bat點號是哪個鍵

電腦點bat點號是哪個鍵

發布時間:2022-05-19 18:13:00

A. bat關機命令怎麼做啊

bat關機命令需要使用文本文檔。

使用文本文檔製作bat關機命令步驟如下所示:

1、在電腦桌面空白處點擊滑鼠右鍵。


B. bat文件的用法命令

Echo 命令
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的文件中.這將在以後的例子中體現出來。
@ 命令
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)
Goto 命令
指定跳轉到標簽,找到標簽後,程序將處理從下一行開始的命令。
語法:goto label (label是參數,指定所要轉向的批處理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標簽,goto命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣別人看起來才會理解你的意圖啊。
Rem 命令
注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你自己日後修改。
Rem Message
Sample:@Rem Here is the description.
Pause 命令
運行 Pause 命令時,將顯示下面的消息:
Press any key to continue . . .
Sample:
@echo off
:begin
a:*.* d:ack
echo Please put a new disk into driver A
pause
goto begin
在這個例子中,驅動器 A 中磁碟上的所有文件均復制到d:ack中。顯示的注釋提示您將另一張磁碟放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁碟,然後按任意鍵繼續處理。
Call 命令
從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。
語法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數
[Drive:][Path] FileName
指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。
start 命令
調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
入侵常用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先順序類別開始應用程序
REALTIME 在 REALTIME 優先順序類別開始應用程序
WAIT 啟動應用程序並等候它結束
parameters 這些為傳送到命令/程序的參數
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。
choice 命令
choice 使用此命令可以讓用戶輸入一個字元,從而運行不同的命令。使用時應該加/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234……
如: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的內容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (應先判斷數值最高的錯誤碼)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:dosdefrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件運行後,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然後if語句將作出判斷,d表示執行標號為defrag的程序段,m表示執行標號為mem的程序段,e表示執行標號為end的程序段,每個程序段最後都以goto end將程序跳到end標號處,然後程序將顯示good bye,文件結束。
If 命令
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。有三種格式:
⒈if 參數 == 字元串 待執行的命令
參數如果等於指定的字元串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
如if %1==a format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
⒉if exist 文件名待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如if existconfig.sysedit config.sys
⒊if errorlevel / if not errorlevel 數字待執行的命令
如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1。
for 命令
for 命令是一個比較復雜的命令,主要用於參數在指定的范圍內循環執行命令。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
for {%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters 為特定命令指定參數或命令行開關。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %I
如果命令擴展名被啟用,下列額外的 FOR 命令格式會受到
支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件
名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
FOR 語句。如果在 /R 後沒有指定目錄,則使用當前
目錄。如果集僅為一個單點(.)字元,則枚舉該目錄樹。
FOR /L %variable IN (start,step,end) DO command [command-para
該集表示以增量形式從開始到結束的一個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
序列 (5 4 3 2 1)。
FOR /F [options] %variable IN (file-set) DO command
FOR /F [options] %variable IN (string) DO command
FOR /F [options] %variable IN (command) DO command
或者,如果有 usebackq 選項:
FOR /F [options] %variable IN (file-set) DO command
FOR /F [options] %variable IN (string) DO command
FOR /F [options] %variable IN (command) DO command
filenameset 為一個或多個文件名。繼續到 filenameset 中的
下一個文件之前,每份文件都已被打開、讀取並經過處理。
處理包括讀取文件,將其分成一行行的文字,然後將每行
解析成零或更多的符號。然後用已找到的符號字元串變數值
調用 For 循環。以默認方式,/F 通過每個文件的每一行中分開
的第一個空白符號。跳過空白行。您可通過指定可選 options
參數替代默認解析操作。這個帶引號的字元串包括一個或多個
指定不同解析選項的關鍵字。這些關鍵字為:
eol=c - 指一個行注釋字元的結尾(就一個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的
默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導致額外變數名稱的
格式為一個范圍。通過 nth 符號指定 m
符號字元串中的最後一個字元星號,
那麼額外的變數將在最後一個符號解析之
分配並接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執行一個後引號的字元串並且
引號字元為文字字元串命令並允許在 fi
中使用雙引號擴起文件名稱。
sample1:
FOR /F eol=; tokens=2,3* delims=, %i in (myfile.txt) do command
會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將
每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和/或
空格定界符號。請注意,這個 for 程序體的語句引用 %i 來
取得第二個符號,引用 %j 來取得第三個符號,引用 %k
來取得第三個符號後的所有剩餘符號。對於帶有空格的文件
名,您需要用雙引號將文件名括起來。為了用這種方式來使
用雙引號,您還需要使用 usebackq 選項,否則,雙引號會
被理解成是用作定義某個要分析的字元串的。
%i 專門在 for 語句中得到說明,%j 和 %k 是通過
tokens= 選項專門得到說明的。您可以通過 tokens= 一行
指定最多 26 個符號,只要不試圖說明一個高於字母 z 或
Z 的變數。請記住,FOR變數是單一字母、分大小寫和全局的;
同時不能有 52 個以上都在使用中。
您還可以在相鄰字元串上使用 FOR /F 分析邏輯;方法是,
用單引號將括弧之間的 filenameset 括起來。這樣,該字元
串會被當作一個文件中的一個單一輸入行。
最後,您可以用 FOR /F 命令來分析命令的輸出。方法是,將
括弧之間的 filenameset 變成一個反括字元串。該字元串會
被當作命令行,傳遞到一個子 CMD.EXE,其輸出會被抓進
內存,並被當作文件分析。因此,以下例子:
FOR /F usebackq delims== %i IN (`set`) DO @echo %i
會枚舉當前環境中的環境變數名稱。
⒒Ping命令
Ping命令可以測試計算機名和計算機的IP地址,嚴正與對方計算機的連接,通過向對方主機發送「網際消息控制協議 (ICMP)」回響請求消息來驗證與對方 TCP/IP 計算機的 IP 級連接。回響應答消息的接收情況將和往返過程的次數一起顯示出來。Ping 是用於檢測網路連接性、可到達性和名稱解析的疑難問題的主要 TCP/IP 命令。如果不帶參數,ping 將顯示幫助。
12. AT命令
AT 命令安排在特定日期和時間運行命令和程序。
要使用 AT 命令,計劃服務必須已在運行中。
AT [\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\computername] time [/INTERACTⅣE] [ /EVERY:date[,...] | /NEXT:date[,...]] command
\computername 指定遠程計算機。如果省略這個參數,會計劃在本地計算機上運行命令。
id 指定給已計劃命令的識別號。
/delete 刪除某個已計劃的命令。如果省略 id,計算機上所有已計劃的命令都會被刪除。
/yes 不需要進一步確認時,跟刪除所有作業的命令一起使用。
time 指定運行命令的時間。
/interactive 允許作業在運行時,與當時登錄的用戶桌面進行交互。
/every:date[,...] 指定在每周或每月的特定日期運行命令。如果省略日期,則默認為在的運行。
/next:date[,...] 指定在下一個指定日期(如,下周四)運行命令。如果省略日期,則默認為在的運行。
command 准備運行的 Windows NT 命令或批處理程序。

C. 電腦重啟bat代碼怎麼解決

電腦重啟bat代碼的解決方法
一分鍾後關機
點擊Windows﹢R鍵,輸入 shutdown -s 。輸完代碼以後,點擊回車。將會出現「windows將在一分鍾後關閉」的提示框。
馬上關機
同樣點擊Win﹢R鍵,輸入 shutdown -p。點擊回車,可以看到電腦立馬進入了關機的頁面。
取消關機
同樣點擊Win﹢R鍵,輸入 shutdown -a。點擊回車,可以看到計劃的關閉已取消。

半小時後關機
新建一個文本文檔,將其命名為半小時後關機。
打開文檔,輸入代碼 shutdown -s -t 1800,點擊保存。
將文檔的後綴名改為 bat。
可以看到提示半小時後進行關機的頁面。
取消關機
新建一個文本文檔,打開輸入代碼shutdown -a
同樣的點擊保存,將文檔的後綴名改為bat,點擊運行它。我們的關機計劃就被取消了
立刻重啟:
點擊Win﹢R鍵,輸入 shutdown -r -t 0(其中r是重啟的意思, t代表時間, 0是0秒 ,我們可以根據自己的需要對時間進行更改, 比如半個小時就是1800秒)。
點擊回車。電腦就立馬進行重啟了~

D. 電腦中打不開bat文件怎麼辦

1、打開開始菜單——控制面板;
2、點擊系統和安全——系統;
3、點擊左上角的「高級系統設置」;
4、切換到「高級」選項卡,點擊下方的「環境變數」;
5、在用戶變數下方點擊「新建」,輸入用戶名%path%,以及變數值C:/windows/system32,點擊確定;
6、選中系統變數中的path,點擊編輯按鈕,添加%path%並保存即可。

E. 電腦快捷鍵有哪些

一、Windows鍵 + 空格鍵「Space」[作用]:透明化所有窗口,快速查看桌面(並不切換) [快捷鍵]:win+空格 [小結]:當你打開了很多程序窗口的時候,這招非常有用,而且桌面還會有華麗的光影效果哦。沒用過的趕緊試試先 二、Windows鍵 + D [作用]:最小化所有窗口,並切換到桌面,再次按又重新打開剛才的所有窗口 [快捷鍵]:win+d [小結]:這個功能在以前的系統里是都有的,只不過win7的顯示桌面放到了任務欄的右下角了(就是最右邊的那個長方形小條) 三、Windows鍵 + tab鍵 [作用]:傳說中的3D桌面展示效果 [快捷鍵]:win+tab [小結]:記得本區應該有一個帖就是關於這個效果的,不過感覺這招最簡單了 四、Windows鍵 + ctrl鍵+tab鍵 [作用]:3D桌面瀏覽並鎖定(可截屏) [快捷鍵]:win+ctrl+tab [小結]:見識了它的效果想留個圖,win+tab是辦不到di,win7說了 -- I can! 五、Windows鍵 + 數字鍵 [作用]:針對固定在快速啟動欄中的程序,按照數字排序打開相應程序 [快捷鍵]:win+數字(1-9) [小結]:吼吼,這個功能爽吧 六、Windows鍵 + P[作用]:打開「外接顯示」的設置窗口 [快捷鍵]:win+p[小結]:辦公室一族,對這個功能肯定不會陌生吧。對了,接投影儀快速切換,嘿嘿。 七、Windows鍵 + X[作用]:打開「移動中心」設置窗口 [快捷鍵]:win+x[小結]:設置窗口裡包括顯示器亮度控制、音量控制、筆記本電池監控、Mobile手機同步設置、外接顯示器管理...等多種功能 八、修復系統默認文件關聯 [作用]:修復系統默認文件關聯 [小結]:當我們無意中破壞了系統默認的文件關聯,這招就派上用場了。win7下可不像winxp那樣容易修改文件關聯的。 [操作方法]:開始->cmd,按如下格式輸入assoc.XXX=XXXfile XXX代表文件類型,比如修復TXT和BAT的文件關聯,命令就是assoc.TXT=TXTfile 和 assoc.BAT=BATfile 九、關閉系統休眠功能 [作用]:關閉系統休眠功能 [小結]: windows7下的休眠功能需要硬體和操作系統的功能支持,目前該功能出現多種問題,建議在正式版出來之前先關閉它,而且還可以為系統盤節省大量磁碟空間(大約4G)。 [操作方法]:開始->cmd,輸入powercfg -h off,回車 解決WIN7無法識別的網路方法: 安裝win7應經兩個星期了,每次開機都會出現兩個網路連接,一個家庭網路,一個未識別的網路,但是我的電腦只裝了一個網卡,所以每次開機後總是首先禁用一下網卡再啟用才能上網,那麼怎麼才能把那個開機啟動的未識別的網路禁用呢。。 出現未識別的網路是因為win7有一個DNSresponder.exe的開機啟動進程,這是安裝adobe ps3 後的Bonjour.exe在作怪,這是一個搜尋區域網的進程,此文件夾在X:\program Files\下,有一個Bonjour的文件夾。首先用360軟體管家,再點高級工具,找到DNSresponder.EXE進程,點結束進程,然後回到文件夾,把文件夾裡面的mdnsNSP.dll重命名為mdnsNSP.txt。然後重啟電腦,找到Bonjour文件夾,直接刪除,重啟電腦,看一下是不是就一個網路連接了。。 雙系統完全卸載Windows 7的方法 :目前window 7 逐漸代替我們現在電腦系統,在window 7的步入之際,你是否覺得還不適應,是否還在window 7和window XP 之間徘徊,為了解決這個問題,很多朋友都是裝了雙系統,本人就是這樣,本人把window xp裝在C盤,window 7裝在了D盤,在厭倦了window xp的時候,可以登錄window 7系統來體驗。但是有的朋友不習慣,想刪除window 7的時候,就不知道怎麼弄了,這里就介紹給大家一個方法。 想要完全卸載Windows 7,需要先處理雙系統的引導啟動菜單,在去掉了雙系統共享使用的啟動管理器之後,才能正常格式化Windows 7所在的分區。方法如下:首先,啟動到xp系統,在電腦光碟機中放入Windows 7的安裝光碟(若是下載的ISO鏡象文件,可以用虛擬光碟機Deamon tools或者Virtual Drive Manager讀取並載入Windows 7的光碟鏡像到虛擬光碟機中。其次,依次點擊「開始菜單/運行」,彈出命令行窗口。在命令行窗口中輸入A:\boot\bootsect.exe /nt52 all /force,然後敲回車鍵運行,需要注意的是,A是本例中放入Windows 7安裝光碟的盤符,讀者需要根據自己放入Windows 7光碟的盤符,將A改為自己的盤符。再次,彈出Windows 7安裝光碟;接下來,再重啟計算機,我們就可以發現雙系統的啟動菜單Windows 7系統啟動項和early version Windows 選項消失了,直接進入xp系統,這表明雙系統引導啟動菜單已經刪除完成。最後,在重啟後的xp系統中,現在可以手動刪除Windows 7文件和文件夾了,如程序文件,用戶和Windows 文件夾。如果沒有其它重要文件,直接格式化Windows 7所在的分區最省事的。就在XP下將Windows 7卸載得乾乾凈凈。 Windows 7系統服務清理手動優化方案 目前已經有不少配置不是很高的電腦用戶正式用上了Windows7,如何讓低配置電腦可以更流暢的運行Windows7呢?雖然部分軟體提供了傻瓜化的優化處理方法,但這些優化往往讓用戶摸不到頭腦,更不知道是否真實有效。本文教大家手動優化Windows7,而對象則是最容易被忽視的系統服務。 我們首先了解系統服務的一些相關知識,然後再根據Windows7用戶的各種不同需求提供有針對性Windows7系統服務清理方案,提高WIndows7的運行速度。 什麼是服務? 服務是系統用以執行指定系統功能的程序或進程,其功用是支持其他應用程序,一般在後台運行。與用戶運行的程序相比,服務不會出現程序窗口或對話框,只有在任務管理器中才能觀察到它們的身影。 如何修改服務的啟動類型? 在Win 7開始菜單的「搜索程序和文件」欄里輸入「services.msc」或「服務」,即可搜索到「服務」項,點擊之後就可以打開服務管理列表窗口。雙擊任意一個服務即可查看或修改它的屬性,在屬性窗口中就可以修改啟動類型為「手動」、「自動」、「自動(延時啟動)」或「禁用」。 「自動」和「自動(延時啟動)」有什麼不同? 「自動」啟動是指電腦啟動時同時載入該服務項,以便支持其他在此服務基礎上運行的程序。而「自動(延時啟動)」則是Windows7當中非常人性化的一個設計。採用這種方式啟動,可以在系統啟動一段時間後延遲啟動該服務項,可以很好地解決一些低配置電腦因為載入服務項過多導致電腦啟動緩慢或啟動後響應慢的問題。 「手動」和「禁用」有什麼不同? 服務啟動狀態為「手動」的情況下,該進程雖然關閉,但依然可以在特定情況下被激活,而設置為「禁用」後,除非用戶手動修改屬性,否則服務將無法運行。 哪些服務需要手動啟動? 「手動」模式,顧名思義就是這種服務不會隨著系統的啟動而載入,而需要其他服務激活或者由用戶進入服務管理界面後,手動啟動它或者修改其屬性為「自動」啟動。 這種模式常用在需要開啟一些系統原本沒有開啟的功能時。以「Application Identity」服務為例,默認狀態下該服務為「手動」狀態,即沒有啟動。但是當用戶需要使用AppLocker功能時,就必須手動啟用這一服務(修改為「自動」狀態),否則AppLocker功能將無法正常工作。 修改前應該注意些什麼? 修改系統服務可能會造成一些意想不到的問題,所以修改前最好將默認的服務狀態進行備份。方法為打開服務管理窗口後依次點擊「操作→導出列表」,選擇「保存類型」為TXT文本文件或CSV文件,建議選擇後者,該文件可用Excel打開。 此外,如果出現因為修改錯誤導致無法正常進入系統的情況,可以在開機時按F8鍵選擇進入安全模式,在安全模式中修改服務啟動屬性。 用Windows 7庫功能管理臨時文件有很多網路應用類程序,為了加快用戶再次訪問的速度,會將以前訪問過的部分緩存保存到硬碟中,如IE的網頁緩存、QQ的表情和接收圖片、Picasa的圖片縮略圖索引文件。此類臨時文件非常有用,不妨保留並統一管理,效率更高。 ◎ 用庫集中管理臨時文件 程序不同,臨時文件默認的保存路徑也不同,這無疑為我們統一管理帶來了難度。若經常要管理臨時文件,查看文件的大小或者批量清理很繁瑣。其實可以用Windows 7的庫來統一管理。 首先,添加Windows 7臨時文件庫。在資源管理器左側右擊「庫」,在彈出的右鍵菜單中,選擇「新建/庫」,新建一個名為「臨時文件」的庫。 其次,讓隱藏的系統文件顯示出來。「屬性」為「系統/隱藏」或「隱藏」的文件,需要在Windows 7資源管理器的工具欄中,單擊「組織/文件夾和搜索選項」,打開相應的對話框,切換到「查看」標簽,在列表中,取消對「隱藏受保護的操作系統文件」項的勾選,同時選擇「顯示隱藏的文件、文件夾和驅動器」項,單擊「確定」按鈕就可以看到。 最後,添加臨時文件到庫中。右擊需要添加的臨時文件夾,在彈出的右鍵菜單中,選擇「包含到庫中/臨時文件」,將其添加到庫中。 以後通過庫,就能方便地進行查看和刪除等操作了。可以通過Windows 7的搜索功能,搜索指定的文件然後批量刪除。 屬性為「系統/隱藏」的臨時文件,如IE臨時文件夾「Temporary Internet Files」,用上面的方法無法添加到庫中,可以將其上級目錄「Windows」添加到庫中,以達到統一管理目的。 實用技巧:如何解決winXP/Win7文件不能互訪如何解決XP/Win7文件不能互訪,而不是一個「唯一確定的解決辦法」。很多時候,一個看上去無關的系統默認設置,很可能就會造成系統之間無法正常訪問,因此,誰都無法憑空造出一個完美解決方案。 對於這個的問題,一直認為沒有唯一確定的解決方法,也就是說,在遇到具體的情況時才能找到具體的解決辦法。但實際上,我們也可以總結出一個大概的解決思路,然後在根據大概的思路,具體問題具體對待。 在Winodws XP和Windows 7之間出現文件共享或互訪的障礙時(包括區域網內互訪和雙機互聯的情況),我們可以從以下幾個方面入手。 1.防火牆是否關閉 如果在Windows 7和Windows XP之間無法看到對方,首先請堅持二者的防火牆是否關閉。 關閉Windows 7防火牆 在關閉Windows 7和Windows XP的系統防火牆後,你要注意是否安裝了第三方防火牆。如果已安裝,請關閉。 XP系統的電腦無法訪問Windows7的共享文件夾,有些雖然能看到Windows7下的共享目錄,但是一旦進入目錄,就會提示沒有訪問許可權。 2.開啟Guest賬戶 直到現在,也沒有一個比較合理的解釋來說明,為什麼不開啟Guest賬戶會影響到Windows系統之間的互訪。這一情況在解決Windows 98和Windows XP之間已經是不止一次的得到印證。因此,在Windows XP和Windows 7之間的互訪,也需要開啟Guest賬戶。 開啟Windows 7的來賓賬戶 同樣的,你還需要在Windows XP系統中,也開啟Guest來賓賬戶。 3.文件和列印機共享 當用戶將防火牆關閉,來賓帳戶也已經開啟,但仍然無法實現互訪時,用戶需要分別開啟Windows XP和Windows 7防火牆下的「文件和列印機共享」。 開啟Windows XP防火牆下的文件和列印機共享 特別提醒一句,如果你是通過遠程共享的方式進行的訪問,還應該找到遠程服務有關的項,並分別將他們開啟。 4.用戶許可權 在Windows 7系統中,出於系統安全的考慮,微軟賦予了管理員帳戶更高的安全許可權。但這種「高許可權」設置,在系統互訪時會造成更多的訪問障礙。通常情況下,由於Windows 7系統對於系統訪問「警惕性較高」,因此,如果遇到系統提示許可權不夠時,你需要賦予訪問者更高許可權。 小知識:Windows 7系統中的安全賬戶許可權 包括一些Windows 7用戶在內,很多人都認為Administrator帳戶是系統內最高許可權的擁有者,其實並非如此。微軟在Windows 7中還設置了一個隱藏賬戶,它具有更高的許可權。 回到剛才的話題,由於對方是網路訪問,你在區域網中很可能因為無法為具體的訪問賬戶提升許可權,因此,你就需要降低被訪問的文件(夾)的許可權,也就是說,間接賦予訪問者「完全控制許可權」。 降低被訪問文件夾的許可權Windows 7 特別提示: 如果用戶按照上述方法設置後,訪問者依然無法訪問共享文件,建議大家在「123屬性」文件夾中,切換到「安全」標簽,然後給文件夾添加訪問用戶的完全控制許可權。 5.安全軟體或系統輔助軟體 在Windows XP時代,鼎鼎有名的系統輔助類軟體,莫過於Windows優化大師,已經超級兔子魔法設置。在Windows 7平台下,此類軟體依然有部分用戶在使用。此類軟體也是出於系統安全的考慮,一般會關閉系統遠程訪問,或是文件夾共享等。如果你安裝了此類軟體,那就需要查看它們的程序設置,是否關閉了共享和遠程服務等。 此外,在一些殺毒軟體中,它們也會對遠程服務和訪問予以限制,你同樣需要解除限制。 Windows 7最全的硬碟安裝方法!還不知道怎麼安裝系統的進當然,網上下載的系統都是ISO的,有條件的朋友可以刻錄成光碟進行安裝!一、windows 7系統下全新安裝高版Windows7:1、下載windows7 7100 ISO鏡像(RC或RTM),用虛擬光碟機拷貝至非C盤(如D:\7100) 2、開機按F8——修復系統——選擇最後一項命令修復——在命令框輸入D:\7100\sources\setup.exe3、進入安裝界面、選擇custom安裝 4、選擇安裝語言、格式化C盤 5、OK了,裝好後是一個純系統(非雙系統)。二、如果有vista安裝盤的話,方法也很簡單:1、下載windows7 7100 ISO鏡像(RC或RTM),用虛擬光碟機拷貝至非C盤(如D:\7100) 2、BIOS中選擇光碟機啟動,進入vista安裝界面 3、選擇左下角修復計算機(自動搜索系統,提示載入驅動或關閉,選擇關閉進入修復選項) 4、選擇最後一項命令修復,在命令框輸入「D:\7100\sources\setup.exe「(不帶引號),開始安裝 5、選擇安裝語言、格式化C盤 (即使C盤原本沒有系統此法也可行)三、XP系統下全新安裝windows 7:1、下載windows 7 7100 ISO鏡像(RC或RTM),用虛擬光碟機拷貝至非C盤(如D:\7100) 2、把D:\7100目錄下的bootmgr和boot目錄(其實只要裡面的boot.sdi和bcd文件)拷貝到c盤根目錄下,並在C盤根目錄下建個sources文件夾。(XP下不需要取得管理員許可權) 3、把D:\7100\sources下的boot.win復制到C盤剛建的sources文件夾 4、用管理員身份運行cmd,然後輸入c:\boot\bootsect.exe/nt60 c: 提示successful(即成功了!) 5、關閉cmd窗口重啟計算機,自動進入安裝界面,選擇安裝語言,同時選擇適合自己的時間和貨幣顯示種類及鍵盤和輸入方式 6、出現「開始安裝界面」,(要注意了,不點擊「現在安裝」)點左下角「修復計算機」(repair mycomputer),進入"系統恢復選擇",選擇最後一項"命令提示符"(commandprompt),進入DOS窗口 7、輸入「D:\7100\sources\setup.exe「(不帶引號),開始安裝 8、選擇安裝語言、格式化C盤,就OK了 四、vista系統下全新安裝windows7(實踐證明XP用此種方法也更加方便):1、下載windows 7 7100 ISO鏡像(RC或RTM),用虛擬光碟機拷貝至非C盤(如D:\7100) 2、復制D:\7100文件夾中的Boot、EFI、sources文件夾和bootmgr至C盤根目錄下 。(需取得管理員許可權)3、復制D:\7100\boot下Bootsect.exe至C盤根目錄下 4、管理員身份運行cmd,輸入c:\bootsect.exe/nt60 c:並回車(最好復制,中間有空格) 5、重啟系統自動進入安裝界面,點左下角的修復計算機repair my computer) 6、選擇最後一項命令提示符,進入DOS窗口,輸入D:\7100\sources\setup.exe進入安裝界面 7、選擇安裝語言、格式化C盤,就OK了。

F. 求腳本(BAT)基本命令

1.「@echo off」--我們所寫的BAT一開始一般都有這一句,這一句的作用是:使所有的命令響應隱藏。「@」--本行命令不回顯。(本來如果你用echo off就可以了,但是還是能夠看到echo off這條命令在CMD下,影響美觀) 2.「color 1e」--設置默認的控制台前景和背景顏色。當前我設為藍底黃字,具體顏色請在CMD下用「color /?」查詢。 --這里又提到了這個參數「/?」,一般CMD下命令後加「/?」就會顯示這條命令的幫助。 3.「rem」--注釋作用,批處理執行過程中前不執行它,rem 後的字元只作注釋作用。
4.「title」--設置命令提示窗口的窗口標題。默認為「cmd」。改成自己喜歡的多有個性,嘿嘿。
5.「cls」--不多說,清屏命令。主要是怕前面的一些空白或字元出現影響美觀。
6.「set」--這個命令的作用很大,請用「set /?」查詢具體使用方法。本例「set topip=172.16.」是將一個名為「topip」的變數值設為「172.16.」。注意CMD下變數的設置不區別數字與字元,能夠自動根據提供的值調整。下行「set theip=0.0」同理。
7.「echo .」--在新行中顯示一個「.」。echo命令能顯示其後的comment。這里提幾個有趣實用的用法--「echo.」,注意與前面的不同,「echo」與「.」間無空格。這條命令如同一個回車,在新行不顯示任何信息並換行。「echo 」,實現響鈴的提示音。後面一個字元的輸入方法是在CMD下用「ctrl+G」,而這個字元得到的方法是CMD下用命令「echo "ctrl+G" >ex.txt」,存入ex.txt文件,再從那裡提取出來的。嘿嘿,如果你懶得做,就我在上面提供的字元嘍。
8.「if」--這條命令也會經常用到,請用「if /?」學習更多信息。本例「if not exist scanipc.exe (echo 文件錯誤!……) 」,實現功能:當同級目錄下不存在「scanipc.exe」時,提示「文件錯誤!……」。否則不提示。「if not exist filename 」在批處理中使用比較多些。
9.「:top」,設置一個標志點,標志名為「top」。「:」的作用就是設置標志。網上有文章說「使用"::comment"作為注釋比"rem comment"執行效率更高。」我相信,這里也建議大家,如果BAT中注釋較多時,請使用「::comment」設置。
10.「set /p pno=」--設置一個變數,並接受用戶輸入。BAT不需要預先聲明變數,只在需要時設置。參數「/p」:將變數數值設成用戶輸入的一行輸入。
11.「if %pno% gtr 9 gotoonerrorspno」--檢驗用戶輸入值是否大於9,是,則轉到一個指定標志點。這里注意BAT中變數引用時要在前後加「%」,但在if語句中可有可無,具體應用大家多寫幾遍就有體會。
12.「goto label」--無條件跳轉到指定標志位並向後執行。BAT好像只有這么一個跳轉語句了,作用不用我說,用了就知道。注意不要構成死循環。

小結:到此,完成了顏色設置、注釋版權說明、標題設置、變數初始化、歡迎信息、功能界面初始化、標志點設置(因為歡迎信息只顯示一次而功能界面要多次使用所以將標志點設置在歡迎信息的後面。)命令的接受與跳轉。;功能界面一般要用「tab」鍵調整相對位置,才能起到美觀的效果。請多練習幾遍領會。;大家在寫腳本過程中要注意標志點的設置位置,才能起到合適的效果。一般寫過幾個腳本會有些感受。;接著接受用戶輸入後「cls」清屏開始執行指定功能。注意這個cls的作用。因為清屏可以在此時,也可以在每個命令執行之前,但如果在每個命令執行之前用的請,那麼要寫的cls就多了,於是把cls寫在這里合適,方便節約快捷。

大家在寫腳本時也應當注意這方面的技巧,將使你寫出更加高效節約方便的代碼。在每次寫完腳本後合理地整合一下自己的代碼。能積累不少經驗。;另外,鑒於部分人仍不知道如何建立BAT文件與運行,請:打開記事本,寫入代碼,保存,保存類型為「所有文件*.*」,文件名為「name*.BAT」。保存後,雙擊運行。因為一般BAT運行很快,所以你可能只看到窗口一閃就消失了,那麼你可以在exit 之前加pause確保能看見運行結果。到此,你應該能夠寫一個很簡單的腳本了,實現一些界面控制。

例1: @echo off color ca title 這是我第一個BAT腳本。 echo 這是我第一個BAT腳本。不錯啊。 pause >nul exit 第二節:(提一些好用的命令)以下設置的都是功能段,在「goto step%pno%」跳轉到相應功能段後,開始執行相應功能。一般命令段: step1:ping命令。(在echo中變數的引用請注意前後加「%」號,否則會導致程序出錯。)我們常用的ping命令:其實很簡單,自己看幫助啦。本句「ping %topip%%theip% -n 1 |findstr 100%>nul」將ping 只發送一次數據包,這樣命令執行起來就快多了,但這樣所會引起一定概率的誤判,而我們在內網這種概率很低,低到可以忽略。所以本人使用參數「-n 1」減少執行時間。將結果不回顯而通過管道命令「|」送給findstr分析,findstr查找是否存在「100%」,並將回顯「丟棄」--「>nul」。因為如果ping一台主機如果返回的結果有「100%」存在說明「不在線。或者有防火牆阻擋。」。所以用findstr確定字元串「100%」的存在性,因為 findstr也有回顯,但我們並不需要,所以將它「丟棄」,使用參數「>nul」將指定命令回顯丟棄。(這一句命令是重點,請仔細領會。)又因為findstr確定指定字元串的存在性後會設定環境變數「errorlevel」的值,所以我們根據「if %errorlevel% equ 0 (command)」,判斷findstr的執行結果就行了,也就不需要有回顯。 「errorlevel」作用很大,一般命令行下的命令執行後都有一個特別的errorlevel,我們就可以根據相應的「返回值」作出相應判斷並執行相應功能。findstr如果找到指定字元串,則有errorlevel=0,說明:IP不在線。那麼既然不在線,我們就沒有向下執行的必要了,直接跳回top界面功能接受下一次指令。如果IP有不同回應,說明在線,則開始檢測共享。「net view \\%topip%%theip%\」--查看指定IP的共享清單。net詳細命令請自行查閱。列出共享清單後返回功能界面。 step2:打開共享一。「explorer \\%topip%%theip%\」,用資源管理器打開指定的IP根。注意語法,其它也沒有什麼。 step3:IPC$空連接。「net use \\%topip%%theip%\ipc$ "" /user:"administrator"」,一個很老的漏洞,但也許內網還有機子存在哩,嘿嘿,語法就是這樣。 step4:一般信息。「ipconfig /all」--用於得到本機的IP與MAC等信息,很好用的命令。語法如示。 「nbtstat -na %topip%%theip%」--用於得到他方機子的一些信息,語法如示。另請自查幫助。 step5:Scanipc。用命令行打開了一個程序而已。在命令行下執行其它命令也就是這樣啦。 step6:返回時間。「net time \\%topip%%theip%」--探測指定機子時間,語法如示。 step7:遠程連接。「net use \\%topip%%theip%\admin$ "" /user:"administrator"」,嘿嘿,administrator空密碼連接。最簡單的入侵啦,嘿嘿嘿。語法如示。 step8:本機信息。跳到另一個功能界面執行相應功能。 step9:高級命令。跳到另一個功能界面執行相應功能。 step0:退出程序。一個exit退出腳本。「exit」,退出CMD。 onerrorsip:實現錯誤提示,並重新執行step1。 onerrorspno:實現錯誤提示,並重新跳轉到功能界面。高級命令段:引用前面已給定的IP,並對其進行一些高級操作。重新繪制功能界面。首先,注意在一個BAT文件中,不允許出現有標志名的重復。 step11:條件連接。設定兩個變數,分別為用戶名與密碼。注意到有一個默認的功能。實現原理是,當接受到用戶輸入為空時(即一個回車),變數將保持不變。條件連接語法如示。比前面遠程空密碼連接更高級一點,嘿嘿。 step12:打開共享。打開已經連接成功的對方計算機的指定盤。打開指定盤語法如示。 step13:發送消息。向對方發送消息。要求雙方的messager服務開啟,否則無法發送成功。發送消息語法如示。 step14:遠程關機。設置關機時間與關機理由,用shutdown程序關閉對方計算機,嘿嘿,惡作劇。要求你連接成功,並有 shutdown程序支持。shutdown語法自查幫助。 step15:溢出CMD。嘿嘿,溢出到對方的CMD下,算是一個真正的入侵了。當然需要用戶名與密碼嘍。要求用戶名與密碼正確並對方默認支持遠程管理。並有psexec程序支持。psexec語法如示,並請自查幫助。 step16:結束進程。嘿嘿,不說也知道,結束對方已知進程。要求連接成功並有pskill程序支持。惡作劇類,有惡意成分。嘿嘿。小心使用。 step17:ipc$連接。同step3. step18:斷開連接。斷開與對方的連接,就是擦屁股啦,以免讓對方有所察覺。這個好習慣要養成。語法如示。 step19:一般命令。返回前面一個功能界面。 step20:結束程序。退出。 step110:AT命令,令對方在指定時間運行指定命令。有點像木馬,嘿嘿。要求連接成功。因為節約變數,所以引用了前面的暫不使用的變數。好習慣。哈哈。 step111:telnet。遠程telnet。不要說你一點都不知道,語法如示並請自查幫助。 step112:更改主IP。主要是為了使我們的使用方便,對某個特定IP段探測能夠簡化輸入。如主IP改成「172.16.130.」,那麼專門對130探測,而且輸入IP時只需輸入最後位,嘿嘿,多方便啊。 step113:任意命令。主要是接受用戶輸入並執行用戶的輸入罷了,結構如示。本機信息段:主要是對本機信息的一些查詢語法。 stepm1:ipconfig,不說了。但請注意到,在功能界面的實現上有一點,「&」符號,因為「&」符號在CMD下是命令連接符,如果光用「&」會讓BAT誤解為其後的都是命令。但我們只是希望輸出一個「&」罷了,於是用「^」符號連接符表明只是輸出「&」,而不是實現命令連接。這里提一下「&」命令連接符,例如:echo frist&echo second.同效於: echo frist echo second. 只是實現結合兩行命令在同一行實現。類如一個很簡單的批處理啦。再提一下「^」符號連接符,對一些特殊符號可能在CMD下無法正確如願顯示,可用「^」連接,以達到如期效果。用了「^」在文本中佔了一位空間,但在輸出時它並不顯示,所以注意界面的布置。 stepm2:本機進程。利用命令行下的進程工具查看進程。要求pslist程序支持。 stepm3:本機用戶。就是查詢一下本機用戶,也許會發現機了被動過的痕跡。 stepm4:結束進程。在命令行下結束本機進程。要求有pskill程序支持。 stepm5:本機埠。也許能看出被攻擊或被入侵的痕跡。語法如示。 stepm6:共享情況。看看本機的共享是否真的如你所想,如你所見。否則請注意安全嘍。語法如示。 stepm7:啟動項值。在命令行下導出啟動項值並給出結果。比魔法兔子什麼的快多了,就是界面不是很好看,呵呵。語法如示。 stepm0:退出程序。退出。小結:到此,您學習過了一些有用的命令與應用。以及大部分的網路命令與外部程序的使用。接下來你可以模擬IP小工具寫出適合更自己的IP小工具哦。注意每執行完一項功能後要用goto返回功能界面,否則腳本無條件向下繼續執行。;errorlevel的應用。在BAT中,errorlevel的作用很大,大家在使用過程中通過多次接觸,感受一下如何玩轉errorlevel。在執行完一個程序後,可以用echo %errorlevel%查看程序運行後是如何設定errorlevel的值。;if的應用。在BAT中,if語句的作用也很大,特別與errorlevel結合實現自動判斷。以及一些基本條件判斷。請查看"if /?" 學習更詳細的說明。;變數的接受與傳遞。這方面的感覺需要大家多寫BAT才能有所感觸。如何合理與高效的應用變數,能使你的腳本更加漂亮。計算機語言都是實踐性很強的,我們學習理論只是基礎,通過大量的實踐才能真正掌握一門語言的應用。 第三節:(一些應用技巧與命令)接下來我們看我的「代理伺服器搜索組件 (ver 2.1)」, 1.「>」與「>>」的區別。 「>」--把指定數據傳送到指定文件或區域。有覆蓋作用,從文件頭開始重寫文件。如指定文件不存在,則新建文件並存入指定數據。 「>>」--以追加方式將指定數據傳送到指定文件或區域。從文件結尾開始寫入指定內容。這兩個功能有區別,請注意選擇合適的傳送方式傳送數據。例如:「echo 文本內容。>link.txt」與「echo 文本內容。>>link.txt」。若本不存在文件link.txt或文件link.txt內容為空,那麼兩條命令的運行結果相同。但如果link.txt不為空,那麼第一條命令將清除link.txt所有內容並存入數據「文本內容。 」保存。而第二條命令只在link.txt的文件尾(另起一行,注意每一個「>>」都會另起一行寫入新數據)追加數據「文本內容。」而以前的內容保持不變。還要特別提一個前面說過的「丟棄」用法「>nul」,因為我們有時候只需要命令的運行而並不需要看到命令的運行結果以及回顯,但這些命令又會出現我們並不需要看到的回顯,影響美觀。故在其後追加「>nul」,丟棄回顯。 2.循環語句的說明。例2: :puship set /p tip= if %tip%==%tbip% goto step1 set tbip=%tip% echo %tip% >>link.txt goto puship 本例中「if %tip%==%tbip% goto step1」與「if %tip% equ %tbip% goto step1」效果一樣。本例的作用是接受用戶帖入數據。關鍵技術在於:因為用戶帖入數據我們不能使用戶每次輸入都詢問是否結束,而需要實現「 智能化」的判斷,但如何以最少的代碼、最簡單的方法實現所謂的「智能化」呢。分析用戶輸入情況:因為一般用戶帖入數據都不會出現重復,所以我們利用這個特點,分析用戶的數據,當用戶帖入列表時,分析數據並將數據存入相應文本,以備後用。當用戶粘帖文本結束後,再加一個回車,因為最後一次變數沒有接受到任何修改,於是保持默認不變(也就是之前的數據。),再通過我們之前的數據備份對照,分析是否不變,是,則跳出循環。這樣,我們通過兩個變數以一個IF比較實現相對簡單的「智能化」。嘿嘿,這一點代碼想了我一個小時。這么說不知道大家是否能理解。請仔細參透例2的技術要點。 3.「FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) do (set /a Allip=Allip+1>nul)」 這句FOR語句是復雜的雜合語句。首先請用for /?查閱詳細用法,這里不再復述。但是特別要提一點的就是批處理與直接命令行下的CMD的區別在FOR語句上。批處理時,變數引用需要有兩個「%」號,否則無法正確執行,而CMD下不用,只需一個「%」。 「set /a Allip=Allip+1>nul」--實現算術運算,變數Allip的自增,注意大小寫。把回顯「丟棄」。本例實現對文件link.txt內容計數,忽略以「;」開頭的行。這就是為什麼我們在前面要用「echo ;:文本>link.txt」來創建文本的意義所在。 4.「call toping %%i」--從批處理程序調用另一個批處理程序。調用另一個批處理「toping.bat」(因為BAT可以直接運行所以不需要後綴BAT),並有參數傳遞。參數來自於FOR語句的提取。「FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) 」--從link.txt的每行中提取文本,從每行的開頭第一個字元開始(tokens=1),以「:」界定提取結尾(delims=: )。把提取結果賦給變數i。 5.「type」--在命令行下顯示指定文件的內容。相信大家應該很熟悉,不多說了。注意與「>或>>」的結合使用,或與其它操作符的結合使用。 6.「%1」--在CMD下,一個BAT能夠接受同時9位的參數,「%1~%9」,分別對應給定的參數變數。「%0」,即是文件本身。我們在使用BAT的過程中會經常遇到兩個或兩個以上腳本間需要參數傳遞。那麼請好好掌握這個用法,多說無益,需要大家在實踐中積累經驗。 7.再說一些比較邊緣,但大家比較興趣的命令。呵呵,不要做壞事。 net user admin 123 /add net localgroup administrators admin /add net localgroup users admin /del net user admin /active:yes net user net user admin net user admin /del 「net user admin 123 /add」--添加名為「admin」,密碼為「123」的用戶,如果「123」不寫,則默認密碼為空。 「net localgroup administrators admin /add」--將用戶「admin」加入「administrators」組,嘿嘿,高許可權。 「net localgroup users admin /del」--將「admin」從「users」組刪除。呵呵,因為用戶新加進去時都是「users」組,許可權比較低,所以要從這個組跳出來,保證administrators組的許可權正式發揮作用,如果不這么做,對方系統會默認你的最低許可權。 「net user admin /active:yes」--怕沒法使用沒有啟動,不要緊,激活這個帳號,嘿嘿。 「net user」--看看用戶有多少哦。 「net user admin」--看看剛剛加的用戶信息如何,是否如我所想,如我所願呢。 「net user admin /del」--刪除用戶admin。 -------------------------------------------------------------------------------------------------------------------

G. bat執行按鍵

另存為a.vbs運行
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad.exe"
WScript.Sleep 200
WshShell.AppActivate "無標題 記事本"
WshShell.SendKeys "A"
WScript.Sleep 1000
WshShell.SendKeys "AA"

H. bat文件里使用的">"符號怎麼打

就是一個大於號。
在鍵盤的 從下往上數第二行從右往左數第八個鍵(包過從右往左數第1個豎長方形的回車鍵)

I. 簡單的bat命令

首先, @ 不是一個命令, 而是DOS 批處理的一個特殊標記符, 僅用於屏蔽命令行回顯. 下面是DOS命令行或批處理中可能會見到的一些特殊標記符:
CR(0D) 命令行結束符
Escape(1B) ANSI轉義字元引導符
Space(20) 常用的參數界定符
Tab(09) ; = 不常用的參數界定符
+ COPY命令文件連接符
* ? 文件通配符
"" 字元串界定符
| 命令管道符
< > >> 文件重定向符
@ 命令行回顯屏蔽符
/ 參數開關引導符
: 批處理標簽引導符
% 批處理變數引導符

其次, :: 確實可以起到rem 的注釋作用, 而且更簡潔有效; 但有兩點需要注意:
第一, 除了 :: 之外, 任何以 :開頭的字元行, 在批處理中都被視作標號, 而直接忽略其後的所有內容, 只是為了與正常的標號相區別, 建議使用 goto 所無法識別的標號, 即在 :後緊跟一個非字母數字的一個特殊符號.
第二, 與rem 不同的是, ::後的字元行在執行時不會回顯, 無論是否用echo on打開命令行回顯狀態, 因為命令解釋器不認為他是一個有效的命令行, 就此點來看, rem 在某些場合下將比 :: 更為適用; 另外, rem 可以用於 config.sys 文件中.
=====================

echo 表示顯示此命令後的字元
echo off 表示在此語句後所有運行的命令都不顯示命令行本身
@與echo off相象,但它是加在每個命令行的最前面,表示運行時不顯示這一行的命令行(只能影響當前行)。
call 調用另一個批處理文件(如果不用call而直接調用別的批處理文件,那麼執行完那個批處理文件後將無法返回當前文件並執行當前文件的後續命令)。
pause 運行此句會暫停批處理的執行並在屏幕上顯示Press any key to continue...的提示,等待用戶按任意鍵後繼續
rem 表示此命令後的字元為解釋行(注釋),不執行,只是給自己今後參考用的(相當於程序中的注釋)。
==== 注 =====
此處的描述較為混亂, 不如直接引用個命令的命令行幫助更為條理

-------------------------
ECHO

當程序運行時,顯示或隱藏批處理程序中的正文。也可用於允許或禁止命令的回顯。

在運行批處理程序時,MS-DOS一般在屏幕上顯示(回顯)批處理程序中的命令。
使用ECHO命令可關閉此功能。

語法

ECHO [ON|OFF]

若要用echo命令顯示一條命令,可用下述語法:

echo [message]

參數

ON|OFF
指定是否允許命令的回顯。若要顯示當前的ECHO的設置,可使用不帶參數的ECHO
命令。

message
指定讓MS-DOS在屏幕上顯示的正文。

-------------------

CALL

從一個批處理程序中調用另一個批處理程序,而不會引起第一個批處理的中止。

語法

CALL [drive:][path]filename [batch-parameters]

參數

[drive:][path]filename
指定要調用的批處理程序的名字及其存放處。文件名必須用.BAT作擴展名。

batch-parameters
指定批處理程序所需的命令行信息。

-------------------------------

PAUSE

暫停批處理程序的執行並顯示一條消息,提示用戶按任意鍵繼續執行。只能在批處
理程序中使用該命令。

語法

PAUSE

REM

在批處理文件或CONFIG.SYS中加入註解。也可用REM命令來屏蔽命令(在CONFIG.SYS
中也可以用分號 ; 代替REM命令,但在批處理文件中則不能替代)。

語法

REM [string]

參數

string
指定要屏蔽的命令或要包含的註解。
=======================

例1:用edit編輯a.bat文件,輸入下列內容後存檔為c:\a.bat,執行該批處理文件後可實現:將根目錄中所有文件寫入 a.txt中,啟動UCDOS,進入WPS等功能。

批處理文件的內容為: 命令注釋:

作者: 219.148.184.* 2007-2-12 18:58 回復此發言

--------------------------------------------------------------------------------

2 bat.文件的命令語法, 句式或bat文件教程

@echo off 不顯示後續命令行及當前命令行
dir c:\*.* >a.txt 將c盤文件列表寫入a.txt
call c:\ucdos\ucdos.bat 調用ucdos
echo 你好 顯示"你好"
pause 暫停,等待按鍵繼續
rem 准備運行wps 注釋:准備運行wps
cd ucdos 進入ucdos目錄
wps 運行wps

批處理文件的參數

批處理文件還可以像C語言的函數一樣使用參數(相當於DOS命令的命令行參數),這需要用到一個參數表示符"%"。

%[1-9]表示參數,參數是指在運行批處理文件時在文件名後加的以空格(或者Tab)分隔的字元串。變數可以從%0到%9,%0表示批處理命令本身,其它參數字元串用%1到%9順序表示。

例2:C:根目錄下有一批處理文件名為f.bat,內容為:
@echo off
format %1

如果執行C:\>f a:
那麼在執行f.bat時,%1就表示a:,這樣format %1就相當於format a:,於是上面的命令運行時實際執行的是format a:

例3:C:根目錄下一批處理文件名為t.bat,內容為:
@echo off
type %1
type %2

那麼運行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
於是上面的命令將順序地顯示a.txt和b.txt文件的內容。

==== 注 ===============
參數在批處理中也作為變數處理, 所以同樣使用百分號作為引導符, 其後跟0-9中的一個數字構成參數引用符. 引用符和參數之間 (例如上文中的 %1 與 a: ) 的關系類似於變數指針與變數值的關系. 當我們要引用第十一個或更多個參數時, 就必須移動DOS 的參數起始指針. shift 命令正充當了這個移動指針的角色, 它將參數的起始指針移動到下一個參數, 類似C 語言中的指針操作. 圖示如下:

初始狀態, cmd 為命令名, 可以用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

經過1次shift後, cmd 將無法被引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%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
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8

遺憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 內核命令行環境下, shift 才支持 /n 參數, 可以以第一參數為基準返復移動起始指針.
=================

特殊命令

if goto choice for是批處理文件中比較高級的命令,如果這幾個你用得很熟練,你就是批處理文件的專家啦。

一、if 是條件語句,用來判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:

1、if [not] "參數" == "字元串" 待執行的命令

參數如果等於(not表示不等,下同)指定的字元串,則條件成立,運行命令,否則運行下一句。

例:if "%1"=="a" format a:

====

if 的命令行幫助中關於此點的描述為:
IF [NOT] string1==string2 command
在此有以下幾點需要注意:
1. 包含字元串的雙引號不是語法所必須的, 而只是習慣上使用的一種"防空"字元
2. string1 未必是參數, 它也可以是環境變數, 循環變數以及其他字元串常量或變數
3. command 不是語法所必須的, string2 後跟一個空格就可以構成一個有效的命令行
=============================

2、if [not] exist [路徑\]文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。

如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,則顯示它的內容。

****** 注 ********
也可以使用以下的用法:
if exist command
device 是指DOS系統中已載入的設備, 在win98下通常有:

作者: 219.148.184.* 2007-2-12 18:58 回復此發言

--------------------------------------------------------------------------------

3 bat.文件的命令語法, 句式或bat文件教程
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具體的內容會因硬軟體環境的不同而略有差異, 使用這些設備名稱時, 需要保證以下三點:
1. 該設備確實存在(由軟體虛擬的設備除外)
2. 該設備驅動程序已載入(aux, prn等標准設備由系統預設定義)
3. 該設備已准備好(主要是指a: b: ..., com1..., lpt1...等)
可通過命令 mem/d | find "device" /i 來檢閱你的系統中所載入的設備
另外, 在DOS系統中, 設備也被認為是一種特殊的文件, 而文件也可以稱作字元設備; 因為設備(device)與文件都是使用句柄(handle)來管理的, 句柄就是名字, 類似於文件名, 只不過句柄不是應用於磁碟管理, 而是應用於內存管理而已, 所謂設備載入也即指在內存中為其分配可引用的句柄.
==================================

3、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

更高效簡潔的用法, 可以參考我寫的另一篇關於獲取 errorlevel 的文章

出現此種現象的原因是, if errorlevel 比較返回碼的判斷條件並非等於, 而是大於等於. 由於 goto 的跳轉特性, 由小到大排序會導致在較小的返回碼處就跳出; 而由於 set命令的 "重復" 賦值特性, 由大到小排序會導致較小的返回碼 "覆蓋" 較大的返回碼.

另外, 雖然 if errorlevel=<數字> command 也是有效的命令行, 但也只是 command.com 解釋命令行時將 = 作為命令行切分符而忽略掉罷了
===========================

二、goto 批處理文件運行到這里將跳到goto所指定的標號(標號即label,標號用:後跟標准字元串來定義)處,goto語句一般與if配合使用,根據不同的條件來執行不同的命令組。

如:

goto end

:end
echo this is the end

標號用":字元串"來定義,標號所在行不被執行。

==== willsort 編注

label 常被譯為 "標簽" , 但是這並不具有廣泛的約定性.

goto 與 : 聯用可實現執行中途的跳轉, 再結合 if 可實現執行過程的條件分支, 多個 if 即可實現命令的分組, 類似 C 中 switch case 結構或者 Basic 中的 select case 結構, 大規模且結構化的命令分組即可實現高級語言中的函數功能. 以下是批處理和C/Basic在語法結構上的對照:

Batch C / Basic
goto&: goto&:
goto&:&if if{}&else{} / if&elseif&endif
goto&:&if... switch&case / select case
goto&:&if&set&envar... function() / function(),sub()
==================================
三、choice 使用此命令可以讓用戶輸入一個字元(用於選擇),從而根據用戶的選擇返回不同的errorlevel,然後於if errorlevel配合,根據用戶的選擇運行不同的命令。

注意:choice命令為DOS或者Windows系統提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法。

作者: 219.148.184.* 2007-2-12 18:58 回復此發言

--------------------------------------------------------------------------------

4 bat.文件的命令語法, 句式或bat文件教程

choice的命令語法(該語法為Windows 2003中choice命令的語法,其它版本的choice的命令語法與此大同小異):

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
該工具允許用戶從選擇列表選擇一個項目並返回所選項目的索引。

參數列表:
/C choices 指定要創建的選項列表。默認列表是 "YN"。

/N 在提示符中隱藏選項列表。提示前面的消息得到顯示,
選項依舊處於啟用狀態。

/CS 允許選擇分大小寫的選項。在默認情況下,這個工具
是不分大小寫的。

/T timeout 做出默認選擇之前,暫停的秒數。可接受的值是從 0
到 9999。如果指定了 0,就不會有暫停,默認選項
會得到選擇。

/D choice 在 nnnn 秒之後指定默認選項。字元必須在用 /C 選
項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。

/M text 指定提示之前要顯示的消息。如果沒有指定,工具只
顯示提示。

/? 顯示幫助消息。

注意:
ERRORLEVEL 環境變數被設置為從選擇集選擇的鍵索引。列出的第一個選
擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,
該工具會發出警告響聲。如果該工具檢測到錯誤狀態,它會返回 255 的
ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0
的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數時,將參數降
序排列。

示例:
CHOICE /?
CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "選項 1 請選擇 a,選項 2 請選擇 b。"
CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。"

==== willsort 編注 ===============================
我列出win98下choice的用法幫助, 已資區分

Waits for the user to choose one of a set of choices.
等待用戶選擇一組待選字元中的一個

CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]

/C[:]choices Specifies allowable keys. Default is YN
指定允許的按鍵(待選字元), 默認為YN
/N Do not display choices and ? at end of prompt string.
不顯示提示字元串中的問號和待選字元
/S Treat choice keys as case sensitive.
處理待選字元時大小寫敏感
/T[:]c,nn Default choice to c after nn seconds
在 nn 秒後默認選擇 c
text Prompt string to display
要顯示的提示字元串
ERRORLEVEL is set to offset of key user presses in choices.
ERRORLEVEL 被設置為用戶鍵入的字元在待選字元中的偏移值
如果我運行命令:CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
屏幕上會顯示:
確認請按 Y,否請按 N,或者取消請按 C。 [Y,N,C]?

例:test.bat的內容如下(注意,用if errorlevel判斷返回值時,要按返回值從高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag

:defrag
c:\dos\defrag
goto end

:mem
mem
goto end

:end
echo good bye

此批處理運行後,將顯示"defrag,mem,end[D,M,E]?" ,用戶可選擇d m e ,然後if語句根據用戶的選擇作出判斷,d表示執行標號為defrag的程序段,m表示執行標號為mem的程序段,e表示執行標號為end的程序段,每個程序段最後都以goto end將程序跳到end標號處,然後程序將顯示good bye,批處理運行結束。

四、for 循環命令,只要條件符合,它將多次執行同一命令。

語法:
對一組文件中的每一個文件執行某個特定命令。

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一個單一字母可替換的參數。

作者: 219.148.184.* 2007-2-12 18:58 回復此發言

--------------------------------------------------------------------------------

5 bat.文件的命令語法, 句式或bat文件教程
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。

例如一個批處理文件中有一行:
for %%c in (*.bat *.txt) do type %%c

則該命令行會顯示當前目錄下所有以bat和txt為擴展名的文件的內容。

==== willsort 編注 =====================================================
需要指出的是, 當()中的字元串並非單個或多個文件名時, 它將單純被當作字元串替換, 這個特性再加上()中可以嵌入多個字元串的特性, 很明顯 for 可以被看作一種遍歷型循環.
當然, 在 nt/2000/xp/2003 系列的命令行環境中, for 被賦予了更多的特性, 使之可以分析命令輸出或者文件中的字元串, 也有很多開關被用於擴展了文件替換功能.
========================================================================

批處理示例

1. IF-EXIST

1) 首先用記事本在C:\建立一個test1.bat批處理文件,文件內容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist

然後運行它:
C:\>TEST1.BAT

如果C:\存在AUTOEXEC.BAT文件,那麼它的內容就會被顯示出來,如果不存在,批處理就會提示你該文件不存在。

2) 接著再建立一個test2.bat文件,內容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist

執行:
C:\>TEST2 AUTOEXEC.BAT
該命令運行結果同上。

說明:
(1) IF EXIST 是用來測試文件是否存在的,格式為
IF EXIST [路徑+文件名] 命令
(2) test2.bat文件中的%1是參數,DOS允許傳遞9個批參數信息給批處理文件,分別為%1~%9(%0表示test2命令本身) ,這有點象編程中的實參和形參的關系,%1是形參,AUTOEXEC.BAT是實參。

==== willsort 編注 =====================================================
DOS沒有 "允許傳遞9個批參數信息" 的限制, 參數的個數只會受到命令行長度和所調用命令處理能力的限制. 但是, 我們在批處理程序中, 在同一時刻只能同時引用10個參數, 因為 DOS只給出了 %0~%9這十個參數引用符.
========================================================================

3) 更進一步的,建立一個名為TEST3.BAT的文件,內容如下:
@echo off
IF "%1" == "A" ECHO XIAO
IF "%2" == "B" ECHO TIAN
IF "%3" == "C" ECHO XIN

如果運行:
C:\>TEST3 A B C
屏幕上會顯示:
XIAO
TIAN
XIN

如果運行:
C:\>TEST3 A B
屏幕上會顯示
XIAO
TIAN

在這個命令執行過程中,DOS會將一個空字元串指定給參數%3。

2、IF-ERRORLEVEL

建立TEST4.BAT,內容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 1 ECHO 文件拷貝失敗
IF ERRORLEVEL 0 ECHO 成功拷貝文件

然後執行文件:
C:\>TEST4

如果文件拷貝成功,屏幕就會顯示"成功拷貝文件",否則就會顯示"文件拷貝失敗"。

IF ERRORLEVEL 是用來測試它的上一個DOS命令的返回值的,注意只是上一個命令的返回值,而且返回值必須依照從大到小次序順序判斷。
因此下面的批處理文件是錯誤的:

@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拷貝文件
IF ERRORLEVEL 1 ECHO 未找到拷貝文件
IF ERRORLEVEL 2 ECHO 用戶通過ctrl-c中止拷貝操作
IF ERRORLEVEL 3 ECHO 預置錯誤阻止文件拷貝操作
IF ERRORLEVEL 4 ECHO 拷貝過程中寫盤錯誤

無論拷貝是否成功,後面的:

未找到拷貝文件
用戶通過ctrl-c中止拷貝操作
預置錯誤阻止文件拷貝操作
拷貝過程中寫盤錯誤

都將顯示出來。

以下就是幾個常用命令的返回值及其代表的意義:

backup
0 備份成功
1 未找到備份文件
2 文件共享沖突阻止備份完成
3 用戶用ctrl-c中止備份
4 由於致命的錯誤使備份操作中止

diskcomp
0 盤比較相同
1 盤比較不同
2 用戶通過ctrl-c中止比較操作
3 由於致命的錯誤使比較操作中止
4 預置錯誤中止比較

disk
0 盤拷貝操作成功
1 非致命盤讀/寫錯
2 用戶通過ctrl-c結束拷貝操作
3 因致命的處理錯誤使盤拷貝中止
4 預置錯誤阻止拷貝操作

format
0 格式化成功
3 用戶

J. bat文件命令大全

.bat是dos下的批處理文件
.cmd是nt內核命令行環境的另一種批處理文件

批處理命令

批處理文件或批處理程序是一個包含若干MS-DOS命令的正文文件,擴展名為.BAT。當在命令提示符下敲入批處理程序的名稱
時,MS-DOS成組執行此批處理程序中的命令。

任何在命令提示符下可使用的命令都可用在批處理程序中。此外,下面MS-DOS命令是專門在批處理程序中使用的。
==========

常用命令

echo、@、call、pause、rem(小技巧:用::代替rem)是批處理文件最常用的幾個命令,我們就從他們開始學起。

==== willsort 編注 ===========
首先, @ 不是一個命令, 而是DOS 批處理的一個特殊標記符, 僅用於屏蔽命令行回顯. 下面是DOS命令行或批處理中可能會見到
的一些特殊標記符:
CR(0D) 命令行結束符
Escape(1B) ANSI轉義字元引導符
Space(20) 常用的參數界定符
Tab(09) ; = 不常用的參數界定符
+ COPY命令文件連接符
* ? 文件通配符
"" 字元串界定符
| 命令管道符
< > >> 文件重定向符
@ 命令行回顯屏蔽符
/ 參數開關引導符
: 批處理標簽引導符
% 批處理變數引導符

其次, :: 確實可以起到rem 的注釋作用, 而且更簡潔有效; 但有兩點需要注意:
第一, 除了 :: 之外, 任何以 :開頭的字元行, 在批處理中都被視作標號, 而直接忽略其後的所有內容, 只是為了與正常的標號相區
別, 建議使用 goto 所無法識別的標號, 即在 :後緊跟一個非字母數字的一個特殊符號.
第二, 與rem 不同的是, ::後的字元行在執行時不會回顯, 無論是否用echo on打開命令行回顯狀態, 因為命令解釋器不認為他是一
個有效的命令行, 就此點來看, rem 在某些場合下將比 :: 更為適用; 另外, rem 可以用於 config.sys 文件中.
=====================

echo 表示顯示此命令後的字元
echo off 表示在此語句後所有運行的命令都不顯示命令行本身
@與echo off相象,但它是加在每個命令行的最前面,表示運行時不顯示這一行的命令行(只能影響當前行)。
call 調用另一個批處理文件(如果不用call而直接調用別的批處理文件,那麼執行完那個批處理文件後將無法返回當前文件並執
行當前文件的後續命令)。
pause 運行此句會暫停批處理的執行並在屏幕上顯示Press any key to continue...的提示,等待用戶按任意鍵後繼續
rem 表示此命令後的字元為解釋行(注釋),不執行,只是給自己今後參考用的(相當於程序中的注釋)。
==== willsort 編注 =====
此處的描述較為混亂, 不如直接引用個命令的命令行幫助更為條理

-------------------------
ECHO

當程序運行時,顯示或隱藏批處理程序中的正文。也可用於允許或禁止命令的回顯。

在運行批處理程序時,MS-DOS一般在屏幕上顯示(回顯)批處理程序中的命令。
使用ECHO命令可關閉此功能。

語法

ECHO [ON|OFF]

若要用echo命令顯示一條命令,可用下述語法:

echo [message]

參數

ON|OFF
指定是否允許命令的回顯。若要顯示當前的ECHO的設置,可使用不帶參數的ECHO
命令。

message
指定讓MS-DOS在屏幕上顯示的正文。

-------------------

CALL

從一個批處理程序中調用另一個批處理程序,而不會引起第一個批處理的中止。

語法

CALL [drive:][path]filename [batch-parameters]

參數

[drive:][path]filename
指定要調用的批處理程序的名字及其存放處。文件名必須用.BAT作擴展名。

batch-parameters
指定批處理程序所需的命令行信息。

-------------------------------

PAUSE

暫停批處理程序的執行並顯示一條消息,提示用戶按任意鍵繼續執行。只能在批處
理程序中使用該命令。

語法

PAUSE

REM

在批處理文件或CONFIG.SYS中加入註解。也可用REM命令來屏蔽命令(在CONFIG.SYS
中也可以用分號(;)代替REM命令,但在批處理文件中則不能替代)。

語法

REM [string]

參數

string
指定要屏蔽的命令或要包含的註解。
=======================

例1:用edit編輯a.bat文件,輸入下列內容後存檔為c:\a.bat,執行該批處理文件後可實現:將根目錄中所有文件寫入 a.txt中,
啟動UCDOS,進入WPS等功能。

批處理文件的內容為: 命令注釋:

@echo off 不顯示後續命令行及當前命令行
dir c:\*.* >a.txt 將c盤文件列表寫入a.txt
call c:\ucdos\ucdos.bat 調用ucdos
echo 你好 顯示"你好"
pause 暫停,等待按鍵繼續
rem 准備運行wps 注釋:准備運行wps
cd ucdos 進入ucdos目錄
wps 運行wps

批處理文件的參數

批處理文件還可以像C語言的函數一樣使用參數(相當於DOS命令的命令行參數),這需要用到一個參數表示符"%"。

%[1-9]表示參數,參數是指在運行批處理文件時在文件名後加的以空格(或者Tab)分隔的字元串。變數可以從%0到%9,%0表
示批處理命令本身,其它參數字元串用%1到%9順序表示。

例2:C:根目錄下有一批處理文件名為f.bat,內容為:
@echo off
format %1

如果執行C:\>f a:
那麼在執行f.bat時,%1就表示a:,這樣format %1就相當於format a:,於是上面的命令運行時實際執行的是format a:

例3:C:根目錄下一批處理文件名為t.bat,內容為:
@echo off
type %1
type %2

那麼運行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
於是上面的命令將順序地顯示a.txt和b.txt文件的內容。

==== willsort 編注 ===============
參數在批處理中也作為變數處理, 所以同樣使用百分號作為引導符, 其後跟0-9中的一個數字構成參數引用符. 引用符和參數之間
(例如上文中的 %1 與 a: ) 的關系類似於變數指針與變數值的關系. 當我們要引用第十一個或更多個參數時, 就必須移動DOS 的參
數起始指針. shift 命令正充當了這個移動指針的角色, 它將參數的起始指針移動到下一個參數, 類似C 語言中的指針操作. 圖示如
下:

初始狀態, cmd 為命令名, 可以用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

經過1次shift後, cmd 將無法被引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%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
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8

遺憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 內核命令行環境下, shift 才支持 /n 參數, 可以以第一參數為基準返
復移動起始指針.
====================

特殊命令

if goto choice for是批處理文件中比較高級的命令,如果這幾個你用得很熟練,你就是批處理文件的專家啦。

一、if 是條件語句,用來判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:

1、if [not] "參數" == "字元串" 待執行的命令

參數如果等於(not表示不等,下同)指定的字元串,則條件成立,運行命令,否則運行下一句。

例:if "%1"=="a" format a:

==== willsort 編注

if 的命令行幫助中關於此點的描述為:
IF [NOT] string1==string2 command
在此有以下幾點需要注意:
1. 包含字元串的雙引號不是語法所必須的, 而只是習慣上使用的一種"防空"字元
2. string1 未必是參數, 它也可以是環境變數, 循環變數以及其他字元串常量或變數
3. command 不是語法所必須的, string2 後跟一個空格就可以構成一個有效的命令行
=============================

2、if [not] exist [路徑\]文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。

如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,則顯示它的內容。

****** willsort 編注 ********
也可以使用以下的用法:
if exist command
device 是指DOS系統中已載入的設備, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具體的內容會因硬軟體環境的不同而略有差異, 使用這些設備名稱時, 需要保證以下三點:
1. 該設備確實存在(由軟體虛擬的設備除外)
2. 該設備驅動程序已載入(aux, prn等標准設備由系統預設定義)
3. 該設備已准備好(主要是指a: b: ..., com1..., lpt1...等)
可通過命令 mem/d | find "device" /i 來檢閱你的系統中所載入的設備
另外, 在DOS系統中, 設備也被認為是一種特殊的文件, 而文件也可以稱作字元設備; 因為設備(device)與文件都是使用句柄
(handle)來管理的, 句柄就是名字, 類似於文件名, 只不過句柄不是應用於磁碟管理, 而是應用於內存管理而已, 所謂設備載入也即
指在內存中為其分配可引用的句柄.
==================================

3、if errorlevel <數字> 待執行的命令

很多DOS程序在運行結束後會返回一個數字值用來表示程序運行的結果(或者狀態),通過if errorlevel命令可以判斷程序的返回值
,根據不同的返回值來決定執行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等於指定的數字,則條件成立
,運行命令,否則運行下一句。

如if errorlevel 2 goto x2

==== willsort 編注 ===========
返回值從大到小的順序排列不是必須的, 而只是執行命令為 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

更高效簡潔的用法, 可以參考我寫的另一篇關於獲取 errorlevel 的文章

出現此種現象的原因是, if errorlevel 比較返回碼的判斷條件並非等於, 而是大於等於. 由於 goto 的跳轉特性, 由小到大排序會導致
在較小的返回碼處就跳出; 而由於 set命令的 "重復" 賦值特性, 由大到小排序會導致較小的返回碼 "覆蓋" 較大的返回碼.

另外, 雖然 if errorlevel=<數字> command 也是有效的命令行, 但也只是 command.com 解釋命令行時將 = 作為命令行切分符而忽略
掉罷了
===========================

二、goto 批處理文件運行到這里將跳到goto所指定的標號(標號即label,標號用:後跟標准字元串來定義)處,goto語句一般與if配
合使用,根據不同的條件來執行不同的命令組。

如:

goto end

:end
echo this is the end

標號用":字元串"來定義,標號所在行不被執行。

==== willsort 編注

label 常被譯為 "標簽" , 但是這並不具有廣泛的約定性.

goto 與 : 聯用可實現執行中途的跳轉, 再結合 if 可實現執行過程的條件分支, 多個 if 即可實現命令的分組, 類似 C 中 switch case
結構或者 Basic 中的 select case 結構, 大規模且結構化的命令分組即可實現高級語言中的函數功能. 以下是批處理和C/Basic在語
法結構上的對照:

Batch C / Basic
goto&: goto&:
goto&:&if if{}&else{} / if&elseif&endif
goto&:&if... switch&case / select case
goto&:&if&set&envar... function() / function(),sub()
==================================

三、choice 使用此命令可以讓用戶輸入一個字元(用於選擇),從而根據用戶的選擇返回不同的errorlevel,然後於if errorlevel配
合,根據用戶的選擇運行不同的命令。

注意:choice命令為DOS或者Windows系統提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法。

choice的命令語法(該語法為Windows 2003中choice命令的語法,其它版本的choice的命令語法與此大同小異):

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
該工具允許用戶從選擇列表選擇一個項目並返回所選項目的索引。

參數列表:
/C choices 指定要創建的選項列表。默認列表是 "YN"。

/N 在提示符中隱藏選項列表。提示前面的消息得到顯示,
選項依舊處於啟用狀態。

/CS 允許選擇分大小寫的選項。在默認情況下,這個工具
是不分大小寫的。

/T timeout 做出默認選擇之前,暫停的秒數。可接受的值是從 0
到 9999。如果指定了 0,就不會有暫停,默認選項
會得到選擇。

/D choice 在 nnnn 秒之後指定默認選項。字元必須在用 /C 選
項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。

/M text 指定提示之前要顯示的消息。如果沒有指定,工具只
顯示提示。

/? 顯示幫助消息。

注意:
ERRORLEVEL 環境變數被設置為從選擇集選擇的鍵索引。列出的第一個選
擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,
該工具會發出警告響聲。如果該工具檢測到錯誤狀態,它會返回 255 的
ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0
的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數時,將參數降
序排列。

示例:
CHOICE /?
CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "選項 1 請選擇 a,選項 2 請選擇 b。"
CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。"

==== willsort 編注 ===============================
我列出win98下choice的用法幫助, 已資區分

Waits for the user to choose one of a set of choices.
等待用戶選擇一組待選字元中的一個

CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]

/C[:]choices Specifies allowable keys. Default is YN
指定允許的按鍵(待選字元), 默認為YN
/N Do not display choices and ? at end of prompt string.
不顯示提示字元串中的問號和待選字元
/S Treat choice keys as case sensitive.
處理待選字元時大小寫敏感
/T[:]c,nn Default choice to c after nn seconds
在 nn 秒後默認選擇 c
text Prompt string to display
要顯示的提示字元串
ERRORLEVEL is set to offset of key user presses in choices.
ERRORLEVEL 被設置為用戶鍵入的字元在待選字元中的偏移值
====================================

如果我運行命令:CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
屏幕上會顯示:
確認請按 Y,否請按 N,或者取消請按 C。 [Y,N,C]?

例:test.bat的內容如下(注意,用if errorlevel判斷返回值時,要按返回值從高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag

:defrag
c:\dos\defrag
goto end

:mem
mem
goto end

:end
echo good bye

此批處理運行後,將顯示"defrag,mem,end[D,M,E]?" ,用戶可選擇d m e ,然後if語句根據用戶的選擇作出判斷,d表示執行標號
為defrag的程序段,m表示執行標號為mem的程序段,e表示執行標號為end的程序段,每個程序段最後都以goto end將程序跳到
end標號處,然後程序將顯示good bye,批處理運行結束。

四、for 循環命令,只要條件符合,它將多次執行同一命令。

語法:
對一組文件中的每一個文件執行某個特定命令。

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。

例如一個批處理文件中有一行:
for %%c in (*.bat *.txt) do type %%c

則該命令行會顯示當前目錄下所有以bat和txt為擴展名的文件的內容。

閱讀全文

與電腦點bat點號是哪個鍵相關的資料

熱點內容
電腦取消屏幕密碼 瀏覽:505
惠普筆記本電腦藍牙耳機 瀏覽:537
電腦多少開始算折舊 瀏覽:465
途安電腦板多少錢 瀏覽:401
學習資料免費在線網站 瀏覽:900
查看電腦wifi連接密碼 瀏覽:413
開機後電腦出現百葉窗 瀏覽:709
迷你電腦主機能裝系統嗎 瀏覽:18
隨身wifi要開電腦嗎 瀏覽:214
ug編程用什麼配置電腦 瀏覽:957
電腦win7音質 瀏覽:457
電腦如何擺脫老師控制 瀏覽:137
華為無線投屏電腦模式鎖屏不能用 瀏覽:287
電腦直播黑屏但是有聲音怎麼回事 瀏覽:932
電腦主機開關壞了怎麼辦 瀏覽:790
無線網如何用線連接電腦 瀏覽:72
三台電腦怎麼共享一台列印機 瀏覽:436
老電腦裝系統好慢 瀏覽:795
電腦初中在線網課免費軟體 瀏覽:655
怎麼對電腦的文件備份 瀏覽:312