亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

系統安全基礎知識之Dos批處理文件詳解
2007-01-09   

后綴是Bat的文件就是批處理文件,是一種文本文件。現在已經用得很少了,但是象IBM筆記本的系統恢復盤就是靠批處理來執行的。簡單的說,它的作用就是自動的連續執行多條命令,批處理文件的內容就是一條一條的命令。那它有什么用呢? 比如,在啟動WPS軟件時,每次都必須執行:

C:>cd wps 
C:WPS>spdos 
C:WPS>py 
C:WPS>wbx 
C:WPS>wps

如果每次用WPS之前都這樣執行一次,您是不是覺得很麻煩呢?

如果有一個方法,只需編寫一個批處理文件,就會自動執行剛才的所有命令,您想不想學呢? 當您看完此節,自己編寫的第一個批處理文件順利執行時,您一定會大吃一驚的。

常用命令

echo、@、call、pause、rem是批處理文件最常用的幾個命令,我們就從他們開始學起。

echo 表示顯示此命令后的字符;echo off 表示在此語句后所有運行的命令都不顯示命令行本身。@ 與echo off相象,但它是加在其它命令行的最前面,表示運行時不顯示命令行本身。

call 調用另一條批處理文件(如果直接調用別的批處理文件 ,執行完那條文件后將無法執行當前文件后續命令);

pause 運行此句會暫停,顯示Press any key to continue... 等待用戶按任意鍵后繼續;

rem 表示此命令后的字符為解釋行,不執行,只是給自己今后查找用的;

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

批處理文件的內容為: 文件表示: 
echo off不顯示命令行 
dir c:*.* >a.txt   將c盤文件列表寫入a.txt 
call c:ucdosucdos.bat   調用ucdos 
echo 你好  顯示"你好" 
pause  暫停,等待按鍵繼續 
rem 使用wps 注釋將使用wps 
cd ucdos進入ucdos目錄 
wps 使用wps

批處理文件中還可以像C語言一樣使用參數,這只需用到一個參數表示符%。

%表示參數,參數是指在運行批處理文件時在文件名后加的字符串。變量可以從%0到%9,%0表示文件名本身,字符串用%1到%9順序表示。

例如,C:根目錄下一批處理文件名為f.bat,內容為format %1,如果執行C:>f a:,則實際執行的是format a:。

又如C:根目錄下一批處理文件的名為t.bat,內容為type %1 type %2 ,那么運行C:>t a.txt b.txt 將順序地顯示a.txt和b.txt文件的內容。

此外電腦每次啟動時都會尋找autoexec.bat這條批處理文件,從而可執行一些每次開機都要執行的命令,如設置路徑path、加載鼠標驅動mouse、磁盤加速smartdrv等,可以使您的電腦真正自動化。

特殊命令

if goto choice for 是批處理文件中比較高級的命令,如果這幾個你用得很熟練,你就是批處理文件的專家啦。if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:

1、if "參數" == "字符串" 待執行的命令

參數如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)

如:if "%1"=="a" format a: 。

2、if exist 文件名 待執行的命令

如果有指定的文件,則條件成立,運行命令,否則運行下一句。如:if exist config.sys edit config.sys。

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

如果返回碼等于指定的數字,則條件成立,運行命令,否則運行下一句。如:if errorlevel 2 goto x2。

DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼。

goto 批處理文件運行到這里將跳到goto所指定的標號處,一般與if配合使用。如:

goto end 
:end 
echo this is the end

標號用:字符串表示,標號所在行不被執行。

choice 使用此命令可以讓用戶輸入一個字符,從而運行不同的命令。使用時應該加/c:參數,c:后應寫提示可輸入的字符,之間無空格。它的返回碼為1234……

如: choice /cme defrag,mem,end 將顯示 defrag,mem,end[D,M,E]?

例如,test.bat的內容如下:

@echo off 
choice /cme defrag,mem,end 
if errorlevel 3 goto defrag 應先判斷數值最高的錯誤碼 
if errorlevel 2 goto mem 
if errotlevel 1 goto end 
efrag 
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,文件結束。

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

格式:FOR [%%f] in (集合) DO [命令]

只要參數f在指定的集合內,則條件成立,執行命令。

如果一條批處理文件中有一行:

for %%c in (*.bat *.txt) do type %%c

含義是如果是以bat或txt結尾的文件,則顯示文件的內容。

Autoexec.bat

DOS在啟動會自動運行autoexec.bat這條文件,一般我們在里面裝載每次必用的程序,如: path(設置路徑)、smartdrv(磁盤加速)、 mouse(鼠標啟動)、mscdex(光驅連接)、 doskey(鍵盤管理)、set(設置環境變量)等。

如果啟動盤根目錄中沒有這個文件,電腦會讓用戶輸入日期和時間。

例如,一個典型的autoexec.bat內容如下:

@echo off不顯示命令行 
prompt $p$g 設置提示符前有目錄提示 
path c:dos;c:;c:windows;c:ucdos;c:tools  設置路徑 
lh c:dosdoskey.com  加載鍵盤管理 
lh c:mousemouse.com加載鼠標管理 
lh c:dossmartdrv.exe 加載磁盤加速管理 
lh c:dosmscdex /S /D:MSCD000 /M:12 /V加載CD-ROM驅動 
set temp=c:temp  設置臨時目錄
IF -EXIST

首先用記事本建立一個文件,文件內容如下:

@echo off 
IF EXIST AUTOEXEC.BAT TYPE AUTOEXEC.BAT 
IF NOT EXIST AUTOEXEC.BAT ECHO AUTOEXEC.BAT does not exist

在C盤保存文件為TEST.BAT,然后執行命令:

C:>TEST1.BAT

這時,如果AUTOEXEC.BAT中有內容的話會顯示出來。

接著再建立一個文件,內容如下:

@ECHO OFF 
IF EXIST %1 TYPE %1 
IF NOT EXIST %1 ECHO %1 does not exist

也保存在C盤,文件名為TEST2.BAT,然后執行命令:

C:>TEST2 AUTOEXEC.BAT

同樣,如果AUTOEXEC.BAT中有內容的話會顯示出來。

說明:

1.IF EXIST 是用來測試文件是否存在的,格式為,

IF EXIST [路徑+文件名] 命令

2.其中第二個文件中的%1是參數,DOS允許傳遞9個批參數信息給批處理文件,分別為%1——%9,有點想實參和形參的關系,%1是形參,AUTOEXEC.BAT是實參。

更進一步的,建立一個名為ABC.BAT的文件,內容如下:

IF ‘%1’ = = ‘ A ’ ECHO XIAO 
IF ‘%1’ = = ‘ B ’ ECHO TIAN 
IF ‘%1’ = = ‘ C ’ ECHO XIN

完成后運行C:>ABC.BAT A B C,屏幕上會顯示C:>XIAOTIANXIA。如果執行C:>ABC.BAT A B,屏幕上會顯示C:>XIAOTIAN,DOS將一個空字符串附給參數%3。可以將NOT放在IF和條件之間,指示IF在條件為假時執行某一命令。

注意:這個命令可在DOS下輸入直接運行。

IF-ERRORLEVEL

用記事本建立一個文件XIAO.BAT,內容如下

@ECHO OFF 
XCOPY C:AUTOEXEC.BAT D: 
IF ERRORLEVEL = = 0 ECHO 成功拷貝文件

然后執行文件,C:>XIAO.BAT。如果文件拷貝成功,屏幕就會顯示:成功拷貝文件

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中止拷貝操作 
預置錯誤阻止文件拷貝操作 
拷貝過程中寫盤錯誤

都將顯示出來。

注意:這個命令是可以在DOS下直接輸入的。

例如:

C:>XCOPY AUTOEXEC.BAT D:

之后可以執行

C:> IF ERRORLEVEL = = 0 ECHO 成功拷貝文件

如果成功,屏幕將顯示:

成功拷貝文件

以下就是幾個常用命令的返回值:

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結束

xopy

出口狀態   意義 
   0       成功拷貝文件 
   1       未找到拷貝文件 
   2       用戶通過ctrl-c中止拷貝操作 
   4       預置錯誤阻止文件拷貝操作 
   5       拷貝過程中寫盤錯誤

IF STRING = = STRING

首先用記事本建立一個名為XIAO.BAT的文件,文件內容如下:

@echo off 
IF "%1" = = "A" FORMAT A:

接著執行

C:>XIAO A

屏幕上就出現是否將A:盤格式化的內容。

這個語句的格式為,

IF "參數" = = "字符串"  待執行的命令

參數如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。

注意:要想在DOS下直接使用,只有這樣,

C:> IF "A" = = "A" FORMAT A:

毫無意義。

GOTO

首先用記事本建立一個名為XIAO.BAT的文件,文件內容如下:

@ECHO OFF 
IF EXIST C:AUTOEXEC.BAT GOTO KB 
: KB 
COPY C:AUTOEXEC.BAT D: 
: DONE

注意:

1.標號前是冒號(:)

2.標號的最后一行是:DONG

3.DOS支持最長為八位的標號,當無法區別兩個標號時,將跳轉至最近的一個標號。

FOR

首先用記事本建立一個名為XIAO.BAT的文件,文件內容如下:

@ECHO OFF 
FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C

接著執行

C:>XIAO.BAT

執行以后,屏幕上會將C:盤所有的以 *.BAT *.TXT *.SYS為擴展名的文件內容顯示出來,當然不包括隱藏文件。

說明:字符%%C 表示FOR命令變量,FOR支持通配符。

責任編輯 趙毅 zhaoyi#51cto.com TEL:(010)68476636-8001


熱詞搜索:

上一篇:黑客基礎知識之四種正確的掛木馬方式
下一篇:系統安全之windows xp net命令祥解(1)

分享到: 收藏