小石頭
          Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.
          posts - 91,comments - 22,trackbacks - 0

          批處理文件是無格式的文本文件,它包含一條或多條命令。它的文件擴展名為 .bat 或 .cmd。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用Cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。

            一. 簡單批處理內部命令簡介
            
            1. Echo 命令

            打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。

            語法

            echo [{on off}] [message]
            Sample:@echo off / echo hello world

            在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> )結合來實現輸入一些命令到特定格式的文件中.這將在以后的例子中體現出來。

            2. @ 命令

            表示不顯示@后面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬盤)自然不能讓對方看到你使用的命令啦。

            Sample:@echo off
            @echo Now initializing the program,please wait a minite...
            @format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)

            3. 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命令就是根據這個:來尋找下一步跳到到那里。最好有一些說明這樣你別人看起來才會理解你的意圖啊。

            4. Rem 命令

            注釋命令,在C語言中相當與/*--------*/,它并不會被執行,只是起一個注釋的作用,便于別人閱讀和你自己日后修改。

            Rem Message
            Sample:@Rem Here is the description.?

          ?????5. Pause 命令

            運行 Pause 命令時,將顯示下面的消息:

            Press any key to continue . . .
            Sample:
            @echo off
            :begin
            copy a:*.* d:\back
            echo Please put a new disk into driver A
            pause
            goto begin

            在這個例子中,驅動器 A 中磁盤上的所有文件均復制到d:\back中。顯示的注釋提示您將另一張磁盤放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁盤,然后按任意鍵繼續處理。

            6. Call 命令

            從一個批處理程序調用另一個批處理程序,并且不終止父批處理程序。call 命令接受用作調用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。

            語法

            call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]

            參數

            [Drive:}[Path] FileName

            指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。

            7. start 命令

            調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。

            入侵常用參數:

            MIN 開始時窗口最小化
            SEPARATE 在分開的空間內開始 16 位 Windows 程序
            HIGH 在 HIGH 優先級類別開始應用程序
            REALTIME 在 REALTIME 優先級類別開始應用程序
            WAIT 啟動應用程序并等候它結束
            parameters 這些為傳送到命令/程序的參數

            執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。

            8. 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:\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,文件結束。



          Trackback: http://tb.donews.net/TrackBack.aspx?PostId=36027

          posted on 2007-02-15 14:59 小石頭 閱讀(293) 評論(0)  編輯  收藏 所屬分類: 批處理學習
          主站蜘蛛池模板: 沈阳市| 扎兰屯市| 乌恰县| 本溪| 新晃| 五莲县| 广灵县| 平武县| 张家口市| 庄浪县| 北川| 凤冈县| 广汉市| 额敏县| 伊通| 仁布县| 福海县| 平罗县| 蒲江县| 寿光市| 松阳县| 和平区| 大厂| 巫溪县| 佳木斯市| 华阴市| 连江县| 巴里| 沐川县| 肥西县| 理塘县| 五河县| 信宜市| 疏附县| 颍上县| 璧山县| 大竹县| 边坝县| 越西县| 彩票| 突泉县|