青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 64, 文章 - 11, 評(píng)論 - 12, 引用 - 0
數(shù)據(jù)加載中……

批處理教程 轉(zhuǎn)載

簡單批處理命令簡介

echo 命令

  打開回顯或關(guān)閉請(qǐng)求回顯功能,或顯示消息。如果沒有任何參數(shù),echo
  

批處理與聯(lián)機(jī)處理

命令將顯示當(dāng)前回顯設(shè)置。
  語法
  echo [{on|off}] [message]
  Sample:@echo off / echo hello world
  在實(shí)際應(yīng)用中我們會(huì)把這條命令和重定向符號(hào)(也稱為管道符號(hào),一般用> >> ^)結(jié)合來實(shí)現(xiàn)輸入一些命令到特定的文件中。

rem 命令

  注釋命令,類似于在C語言中的/*--------*/,它并不會(huì)被執(zhí)行,只是起一個(gè)注釋的作用,便于別人閱讀
  和你自己日后修改。
  :: 也具有rem的功能
  但::和rem還是有區(qū)別的,當(dāng)關(guān)閉回顯時(shí),rem和::后的內(nèi)容都不會(huì)顯示。
  

順序批處理

但是當(dāng)打開回顯時(shí),rem和rem
  后的內(nèi)容會(huì)顯示出來,然而::后的內(nèi)容仍然不會(huì)顯示。
  Rem Message
  Sample:@Rem Here is the description.

pause 命令

  暫停命令。運(yùn)行 Pause 命令時(shí),將顯示下面的消息:
  Press any key to continue. . .(或:請(qǐng)按任意鍵繼續(xù). . .)
  Sample:
  @echo off
  :begin
  copy G:*.* d:\back
  echo 請(qǐng)插入另一張光盤...
  pause
  goto begin
  在這個(gè)例子中,驅(qū)動(dòng)器 G 中磁盤上的所有文件均復(fù)制到d:\back中。顯示的注釋提示您將另一張光盤
  盤放入驅(qū)動(dòng)器 G 時(shí),pause 命令會(huì)使程序掛起,以便您更換光盤,然后按任意鍵繼續(xù)處理。

call 命令

  從一個(gè)批處理程序調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序。call
  

批處理功能界面

命令接受用作調(diào)用目標(biāo)的
  標(biāo)簽。如果在腳本或批處理文件外使用 Call,它將不會(huì)在命令行起作用。
  語法
  call [[Drive:][Path] FileName ] [:label [arguments]]
  參數(shù)
  [Drive:}[Path] FileName
  指定要調(diào)用的批處理程序的位置和名稱。

start 命令

  調(diào)用外部程序,所有的DOS命令和命令行程序都可以由start命令來調(diào)用。
  如:start calc.exe 即可打開Windows的計(jì)算器。
  常用參數(shù):
  MIN 開始時(shí)窗口最小化
  SEPARATE 在分開的空間內(nèi)開始 16 位 Windows 程序
  HIGH 在 HIGH 優(yōu)先級(jí)類別開始應(yīng)用程序
  REALTIME 在 REALTIME 優(yōu)先級(jí)類別開始應(yīng)用程序
  WAIT 啟動(dòng)應(yīng)用程序并等候它結(jié)束
  parameters 這些為傳送到命令/程序的參數(shù)
  執(zhí)行的應(yīng)用程序是 32-位 GUI 應(yīng)用程序時(shí),CMD.EXE 不等應(yīng)用程序
  

常見批處理案例

終止就返回命令提示。如果在命令
  腳本內(nèi)執(zhí)行,該新行為則不會(huì)發(fā)生。

goto 命令

  跳轉(zhuǎn)命令。程序指針跳轉(zhuǎn)到指定的標(biāo)簽,從標(biāo)簽后的第一條命令開始繼續(xù)執(zhí)行批處理程序。
  語法:goto label (label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行。)
  Sample:
  if {%1}=={} goto noparms
  if {%2}=={} goto noparms(如果這里的if、%1.%2你不明白的話,先跳過去,后面會(huì)有詳細(xì)的解釋
  。)
  @Rem check parameters if null show usage
  :noparms
  echo Usage: monitor.bat ServerIP PortNumber
  goto end
  標(biāo)簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個(gè):
  

選擇批處理

用來表示這個(gè)字母是標(biāo)簽,goto
  命令就是根據(jù)這個(gè):來尋找下一步跳到到那里。最好有一些說明這樣你別人看起來才會(huì)理解你的意圖啊。

set 命令

  顯示、設(shè)置或刪除變量。
  顯示變量:set 或 set s 前者顯示批處理當(dāng)前已定義的所有變量及其值,后者顯示所有以s開頭的變量及值。
  設(shè)置變量:set aa=abcd 此句命令便可向變量aa賦值abcd。如果變量aa已被定義,則aa的值被修改為abcd;若aa尚未定義,則此句命令即可定義新的變量aa,同時(shí)為變量aa賦予初始值abcd。
  刪除變量:set aa= 此句命令即可刪除變量aa。若變量aa已被定義,則刪除變量aa;若aa尚未定義,則此句命令無實(shí)質(zhì)意義。
  需要說明的是,批處理中的變量是不區(qū)分類型的,不需要像C語言中的變量那樣還要區(qū)分int、float、char等。比如執(zhí)行set aa=345后,變量aa的值既可以被視為數(shù)字345,也可以被視為字符串345。
  set命令具有擴(kuò)展功能,如用作交互輸入、字符串處理、數(shù)值計(jì)算等,屬于高級(jí)命令范疇。

批處理符號(hào)簡介

回顯屏蔽 @

  表示不顯示@后面的命令,在入侵過程中(例如使用批處理來格式化敵人
  

批處理過程

的硬盤)自然不能讓對(duì)方看到你使用的命令啦。
  @用法舉例:通過運(yùn)行批處理文件對(duì)比pause和@pause命令即可明了@的效果。

重定向1 >與>>

  將輸出信息重定向到指定的設(shè)備或文件。系統(tǒng)默認(rèn)輸出到顯示器。
  如:echo aaaaa>a.txt 即可將本在顯示器上顯示的信息aaaaa輸出到文件a.txt中,屏幕上沒有任何顯示。如果文件a.txt本來已經(jīng)存在,該命令將首先擦除a.txt中的所有信息,然后寫入信息aaaaa;若a.txt本來就不存在,該命令即可新建一個(gè)a.txt文件,并寫入信息aaaaa。
  echo aaaaa>>a.txt 類似于echo aaaaa>a.txt。區(qū)別在于:如果a.txt本已存在,>a.txt會(huì)擦除a.txt中的原有內(nèi)容,而>>a.txt并不擦除原有內(nèi)容,僅在a.txt文件的末尾添加信息aaaaa。a.txt不存在時(shí),二者沒有差別。

重定向2 <

  將輸入信息來源重定向?yàn)橹付ǖ脑O(shè)備或文件。系統(tǒng)默認(rèn)從顯示器讀取輸入信息。
  重定向使用舉例:
  =========================================
  @echo off
  echo abcdefg——這是文件a.txt中的信息>a.txt
  echo 請(qǐng)任意輸入字符,以回車結(jié)束:
  set /p ifo=
  cls
  echo 【 從屏幕獲得的輸入信息 】
  echo %ifo%
  set /p ifo=<a.txt
  echo 【 從文件a.txt獲得的輸入信息 】
  echo %ifo%
  pause>nul
  =========================================
  讀者觀察命令與輸出即可體會(huì)到重定向的功能和效果。

管道符號(hào) |

  將管道符號(hào)前面命令的輸出結(jié)果重定向輸出到管道符號(hào)后面的命令中去,作為后面命令的輸入。使用格式為:command_1|command_2
  管道符號(hào)使用舉例:
  =========================================
  @echo off
  echo aaaa>a.txt
  del /p a.txt
  pause
  =========================================
  @echo off
  echo aaaa>a.txt
  echo y|del /p a.txt
  pause
  =========================================
  對(duì)比以上兩個(gè)批處理執(zhí)行結(jié)果,讀者即可明白管道符的用法和效果。
  需要說明的是,上面del命令添加開關(guān)/p只是為了讓讀者明白管道符號(hào)的使用方法,實(shí)際刪除文件時(shí)不加/p開關(guān)即可實(shí)現(xiàn)無提示直接刪除。

轉(zhuǎn)義符 ^

  將特殊符號(hào)轉(zhuǎn)化為一般符號(hào),即剝離特殊符號(hào)的特殊地位。特殊符號(hào)指:| & > <
  比如,如果我們想輸出符號(hào)“>”,直接用命令 echo > 是不行的,必須修改為 echo ^> 。其余幾個(gè)特殊符號(hào)類似需要有同樣的處理。
  轉(zhuǎn)義字符使用舉例:
  =========================================
  @echo off
  echo aaaa>a.txt
  echo 第一句echo執(zhí)行完畢
  echo aaaa^>a.txt
  echo 第二句echo執(zhí)行完畢
  pause
  =========================================
  比較上面的兩句echo,第一句echo將信息aaaa輸出到了文件a.txt,而第二句echo則在直接屏幕上顯示出aaaa>a.txt

邏輯命令符

  邏輯命令符包括:&、&&、||
  &-它的作用是用來連接n個(gè)DOS命令,并把這些命令按順序執(zhí)行,而不管是否有命令執(zhí)行失敗;
  &&-當(dāng)&&前面的命令成功執(zhí)行時(shí),執(zhí)行&&后面的命令,否則不執(zhí)行;
  ||-當(dāng)||前面的命令失敗時(shí),執(zhí)行||后面的命令,否則不執(zhí)行。
  =========================================
  @echo off
  echo ^|^|
  reg add HKCU /v try /f||echo **成功**
  reg add HKCU1 /v try /f||echo **失敗**
  echo ^&^&
  reg delete HKCU /v try /f&&echo **成功**
  reg delete HKCU /v try /f&&echo **失敗**
  echo ^&
  reg delete HKCU /v try /f&echo **成功**
  reg delete HKCU /v try /f&echo **失敗**
  pause
  =========================================
  執(zhí)行reg add或reg delete后,系統(tǒng)會(huì)給出執(zhí)行結(jié)果;我們通過echo命令也給出了“執(zhí)行結(jié)果”。對(duì)比系統(tǒng)和我們自己給出的結(jié)果,既可以驗(yàn)證邏輯命令的判斷機(jī)理。

常用DOS命令釋義

文件夾管理

  cd 顯示當(dāng)前目錄名或改變當(dāng)前目錄。
  md 創(chuàng)建目錄。
  rd 刪除一個(gè)目錄。
  dir 顯示目錄中的文件和子目錄列表。
  tree 以圖形顯示驅(qū)動(dòng)器或路徑的文件夾結(jié)構(gòu)。
  path 為可執(zhí)行文件顯示或設(shè)置一個(gè)搜索路徑。
  copy 復(fù)制文件和目錄樹。

文件管理

  type 顯示文本文件的內(nèi)容。
  copy 將一份或多份文件復(fù)制到另一個(gè)位置。
  del 刪除一個(gè)或數(shù)個(gè)文件。
  move 移動(dòng)文件并重命名文件和目錄。(Windows XP Home Edition中沒有)
  ren 重命名文件。
  replace 替換文件。
  attrib 顯示或更改文件屬性。
  find 搜索字符串。
  fc 比較兩個(gè)文件或兩個(gè)文件集并顯示它們之間的不同

網(wǎng)絡(luò)命令

  ping 進(jìn)行網(wǎng)絡(luò)連接測試、名稱解析
  ftp 文件傳輸
  net 網(wǎng)絡(luò)命令集及用戶管理
  telnet 遠(yuǎn)程登陸
  ipconfig顯示、修改TCP/IP設(shè)置
  msg 給用戶發(fā)送消息
  arp 顯示、修改局域網(wǎng)的IP地址-物理地址映射列表

系統(tǒng)管理

  at 安排在特定日期和時(shí)間運(yùn)行命令和程序
  shutdown立即或定時(shí)關(guān)機(jī)或重啟
  tskill 結(jié)束進(jìn)程
  taskkill結(jié)束進(jìn)程(比tskill高級(jí),但WinXPHome版中無該命令)
  tasklist顯示進(jìn)程列表(Windows XP Home Edition中沒有)
  sc 系統(tǒng)服務(wù)設(shè)置與控制
  reg 注冊(cè)表控制臺(tái)工具
  powercfg控制系統(tǒng)上的電源設(shè)置
  對(duì)于以上列出的所有命令,在cmd中輸入命令+/?即可查看該命令的幫助信息。如find /?

語句結(jié)構(gòu)釋義

  類似于C語言,批處理也有它的語句結(jié)構(gòu)。批處理的語句結(jié)構(gòu)主要有選擇結(jié)構(gòu)(if語句)、循環(huán)結(jié)構(gòu)(for語句)等。

if語句(選擇結(jié)構(gòu))

  if語句實(shí)現(xiàn)條件判斷,包括字符串比較、存在判斷、定義判斷等。通過條件判斷,if語句即可以實(shí)現(xiàn)選擇功能。
  1.字符串比較
  if語句僅能夠?qū)蓚€(gè)字符(串)是否相同、先后順序進(jìn)行判斷等。其命令格式為:
  IF [not] string1 compare-op string2 command1 [else command2]
  其中,比較操作符compare-op有以下幾類:
  == - 等于
  EQU - 等于
  NEQ - 不等于
  LSS - 小于
  LEQ - 小于或等于
  GTR - 大于
  GEQ - 大于或等于
  選擇開關(guān)/i則不區(qū)分字符串大小寫;選擇not項(xiàng),則對(duì)判斷結(jié)果進(jìn)行邏輯非。
  字符串比較示例:
  ===============================================
  @echo off
  set str1=abcd1233
  set str2=ABCD1234
  if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!)
  if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)
  echo.
  set /p choice=是否顯示當(dāng)前時(shí)間?(y/n)
  if /i not %choice% EQU n echo 當(dāng)前時(shí)間是:%date% %time%
  pause>nul
  ===============================================
  對(duì)于最后一個(gè)if判斷,當(dāng)我們輸入n或N時(shí)的效果是一樣的,都不會(huì)顯示時(shí)間。如果我們?nèi)∠_關(guān)/i,則輸入N時(shí),依舊會(huì)顯示時(shí)間。
  另外請(qǐng)注意一下幾個(gè)細(xì)節(jié):1-echo str1^<str2和echo str1^>=str2;2-echo.。
  2.存在判斷
  存在判斷的功能是判斷文件或文件夾是否存在。其命令格式為:
  IF [NOT] EXIST filename command1 [else command2]
  ===============================================
  @echo off
  if exist %0 echo 文件%0是存在的!
  if not exist %~df0 (
  echo 文件夾%~df0不存在!
  ) else echo 文件夾%~df0存在!
  pause>nul
  ===============================================
  這里注意幾個(gè)地方:
  1-存在判斷既可以判斷文件也可以判斷文件夾;
  2-%0即代表該批處理的全稱(包括驅(qū)動(dòng)器盤符、路徑、文件名和擴(kuò)展類型);
  3-%~df0是對(duì)%0的修正,只保留了其驅(qū)動(dòng)器盤符和路徑,詳情請(qǐng)參考for /?,屬高級(jí)批處理范疇;
  4-注意if語句的多行書寫,多行書寫要求command1的左括號(hào)必須和if在同一行、else必須和command1的右括號(hào)同行、command2的左括號(hào)必須與else同行、command1和command2都可以有任意多行,即command可以是命令集。
  3.定義判斷
  定義判斷的功能是判斷變量是否存在,即是否已被定義。其命令格式為:
  IF [not] DEFINED variable command1 [else command2]
  存在判斷舉例:
  ===============================================
  @echo off
  set var=111
  if defined var (echo var=%var%) else echo var尚未定義!
  set var=
  if defined var (echo var=%var%) else echo var尚未定義!
  pause>nul
  ===============================================
  對(duì)比可知,"set var="可以取消變量,收回變量所占據(jù)的內(nèi)存空間。
  4.結(jié)果判斷
  masm %1.asm
  if errorlevel 1 pause & edit %1.asm
  link %1.obj
  先對(duì)源代碼進(jìn)行匯編,如果失敗則暫停顯示錯(cuò)誤信息,并在按任意鍵后自動(dòng)進(jìn)入編輯界面;否則用link程序連接生成的obj文件,這種用法是先判斷前一個(gè)命令執(zhí)行后的返回碼(也叫錯(cuò)誤碼,DOS程序在運(yùn)行完后都有返回碼),如果和定義的錯(cuò)誤碼符合(這里定義的錯(cuò)誤碼為1),則執(zhí)行相應(yīng)的操作(這里相應(yīng)的操作為pause & edit %1.asm部分)。
  另外,和其他兩種用法一樣,這種用法也可以表示否定。用否定的形式仍表達(dá)上面三句的意思,代碼變?yōu)椋?
  masm %1.asm
  if not errorlevel 1 link %1.obj
  pause & edit %1.asm

for語句(循環(huán)結(jié)構(gòu))

  for語句可以實(shí)現(xiàn)類似于C語言里面的循環(huán)結(jié)構(gòu),當(dāng)然for語句的功能要更強(qiáng)大一點(diǎn),通過不同的開關(guān)可以實(shí)現(xiàn)更多的功能。for語句有多個(gè)開關(guān),不同開關(guān)將會(huì)實(shí)現(xiàn)不同的功能。
  1.無開關(guān)
  無開關(guān)的for語句能夠?qū)υO(shè)定的范圍內(nèi)進(jìn)行循環(huán),是最基本的for循環(huán)語句。其命令格式為:
  FOR %%variable IN (set) DO command
  其中,%%variable是批處理程序里面的書寫格式,在DOS中書寫為%variable,即只有一個(gè)百分號(hào)(%);set就是需要我們?cè)O(shè)定的循環(huán)范圍,類似于C語言里面的循環(huán)變量;do后面的command就是循環(huán)所執(zhí)行的命令,即循環(huán)體。
  無開關(guān)for語句舉例:
  ===============================================
  @echo off
  for %%i in (a,"b c",d) do echo %%i
  pause>nul
  ===============================================
  2.開關(guān)/L
  含開關(guān)/L的for語句,可以根據(jù)set里面的設(shè)置進(jìn)行循環(huán),從而實(shí)現(xiàn)對(duì)循環(huán)次數(shù)的直接控制。其命令格式為:
  FOR /L %%variable IN (start,step,end) DO command
  其中,start為開始計(jì)數(shù)的初始值,step為每次遞增的值,end為結(jié)束值。當(dāng)end小于start時(shí),step需要設(shè)置為負(fù)數(shù)。
  含開關(guān)/L的for語句舉例(創(chuàng)建5個(gè)文件夾):
  ===============================================
  @echo off
  for /l %%i in (1,2,10) do md %%i
  pause
  ===============================================
  上例將新建5個(gè)文件夾,文件夾名稱依次為1.3.5.7.9。可以發(fā)現(xiàn),%%i的結(jié)束值并非end的值10,而是不大于end的一個(gè)數(shù)。
  3.開關(guān)/F
  含開關(guān)/F的for語句具有最強(qiáng)大的功能,它能夠?qū)ψ址M(jìn)行操作,也能夠?qū)γ畹姆祷刂颠M(jìn)行操作,還可以訪問硬盤上的ASCII碼文件,比如txt文檔等。其命令格式為:
  FOR /F ["options"] %%variable IN (set) DO command
  其中,set為("string"、'command'、file-set)中的一個(gè);options是(eol=c、skip=n、delims=xxx、tokens=x,y,m-n、usebackq)中的一個(gè)或多個(gè)的組合。各選項(xiàng)的意義參見for /f。一般情況下,使用較多的是skip、tokens、delims三個(gè)選項(xiàng)。
  含開關(guān)/F的for語句舉例:
  ===============================================
  @echo off
  echo **No Options:
  for /f %%a in ("1,2,10") do echo a=%%a
  echo **Options tokens ^& delims:
  for /f "tokens=1-3 delims=," %%a in ("1,2,10") do echo a=%%a b=%%b c=%%c
  pause
  ===============================================
  @echo off
  echo 本文件夾里面的文件有:
  for /f "skip=5 tokens=3* delims= " %%a in ('dir') do (
  if not "%%a"=="<DIR>" if not "%%b"=="字節(jié)" if not "%%b"=="可用字節(jié)" echo %%b
  )
  pause
  ===============================================
  @echo off
  echo 本文件夾里面的文件有:
  dir>c:\file.txt
  for /f "skip=5 tokens=3* delims= " %%a in (c:\file.txt) do (
  if not "%%a"=="<DIR>" if not "%%b"=="字節(jié)" if not "%%b"=="可用字節(jié)" echo %%b
  )
  del c:\file.txt
  pause
  ===============================================
  對(duì)于后面的兩個(gè)例子,其中options里面的delims= 是可以刪除的,因?yàn)橹灰砑恿?F開關(guān)系統(tǒng)就將delims的值默認(rèn)為空格。
  符號(hào)字符串中的最后一個(gè)字符星號(hào),
  那么額外的變量將在最后一個(gè)符號(hào)解析之后
  分配并接受行的保留文本。本例中也可以改為4,不過文件名中有空格的文件,只能顯示空格以前部分
  
同時(shí)我們也看到了,for語句的do后面的command也是可以分行的,只需要保證command的左括號(hào)和do在同一行就可以了。
  4.開關(guān)/D或/R
  含開關(guān)/D或/R的for語句是與目錄或文件有關(guān)的命令,一般情況下很少使用。含開關(guān)/R的命令有時(shí)候被用于通過遍歷文件夾來查找某一個(gè)文件或文件夾,故而列舉此例。
  含開關(guān)/R的for語句舉例(文件夾遍歷):
  ===============================================
  @echo off
  setlocal enabledelayedexpansion
  FOR /R d: %%i IN (.) DO (
  set dd=%%i
  set "dd=!dd:~0,-1!"
  echo !dd!
  )
  pause
  exit
  ===============================================
  上例即可以羅列出D盤下的所有文件夾,其速度要比命令"tree d:"慢多了,不過其返回結(jié)果的實(shí)用性則遠(yuǎn)遠(yuǎn)超過了tree命令。
  一般情況下我們不推薦通過遍歷文件夾來查找文件,特別是在查找某些程序(比如QQ.exe)的位置時(shí)。推薦通過reg命令查找注冊(cè)表來查找QQ的路徑,以保證查找效率。
  上例中也出現(xiàn)了幾個(gè)新面孔,如setlocal、感嘆號(hào)等。其中,感嘆號(hào)其實(shí)就是變量百分號(hào)(%)的強(qiáng)化版。之所以要用!而不用%,是因?yàn)樵趂or循環(huán)中,當(dāng)一個(gè)變量被多次賦值時(shí),%dd%所獲取的僅僅是dd第一次被賦予的值;要想刷新dd的值,就必須首先通過命令"setlocal enabledelayedexpansion"來開啟延遲變量開關(guān),然后用!dd!來獲取dd的值。
  for語句是批處理里面功能最強(qiáng)大、使用最普遍卻又最難掌握的一套命令,這也是批處理菜鳥和批處理高手最明顯的一個(gè)分水嶺,一旦掌握了這套命令,那么你就離批處理達(dá)人不遠(yuǎn)了!

字符串處理釋義

  批處理有著具有非常強(qiáng)大的字符串處理能力,其功能絕不低于C語言里面的字符串函數(shù)集。批處理中可實(shí)現(xiàn)的字符串處理功能有:截取字符串內(nèi)容、替換字符串特定字段、合并字符串、擴(kuò)充字符串等功能。下面對(duì)這些功能一一進(jìn)行講解。

1.截取字符串

  截取字符串可以說是字符串處理功能中最常用的一個(gè)子功能了,能夠?qū)崿F(xiàn)截取字符串中的特定位置的一個(gè)或多個(gè)字符。舉例說明其基本功能:
  =========================================
  @echo off
  set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789
  echo 原字符串(第二行為各字符的序號(hào)):
  echo %ifo%
  echo 1234567890 123 45678901234567890123456
  echo 截取前5個(gè)字符:
  echo %ifo:~0,5%
  echo 截取最后5個(gè)字符:
  echo %ifo:~-5%
  echo 截取第一個(gè)到倒數(shù)第6個(gè)字符:
  echo %ifo:~0,-5%
  echo 從第4個(gè)字符開始,截取5個(gè)字符:
  echo %ifo:~3,5%
  echo 從倒數(shù)第14個(gè)字符開始,截取5個(gè)字符:
  echo %ifo:~-14,5%
  pause
  =========================================
  當(dāng)然,上面的例子只是將字符串處理的基本功能展示出來了,還看不出字符串處理具體有什么用處。下面這個(gè)例子是對(duì)時(shí)間進(jìn)行處理。
  =========================================
  @echo off
  echo 當(dāng)前時(shí)間是:%time% 即 %time:~0,2%點(diǎn)%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒
  pause
  =========================================

2.替換字符串

  替換字符串,即將某一字符串中的特定字符或字符串替換為給定的字符串。舉例說明其功能:
  =========================================
  @echo off
  set aa=偉大的中國!我為你自豪!
  echo 替換前:%aa%
  echo 替換后:%aa:中國=中華人民共和國%
  echo aa = %aa%
  set "aa=%aa:中國=中華人民共和國%"
  echo aa = %aa%
  pause
  =========================================
  對(duì)于上面的例子有一點(diǎn)說明,對(duì)比兩個(gè)echo aa = %aa%可以發(fā)現(xiàn),如果要修改變量aa的內(nèi)容的話,就需要將修改結(jié)果“%aa:中國=中華人民共和國%”賦值給變量aa。上面的字符串截取也有著同樣的特點(diǎn)。

3.字符串合并

  其實(shí),合并字符串就是將兩個(gè)字符串放在一起就可以了。舉例說明:
  =========================================
  @echo off
  set aa=偉大的中國!
  set bb=我為你自豪!
  echo %aa%%bb%
  echo aa=%aa%
  echo bb=%bb%
  set "aa=%aa%%bb%"
  echo aa=%aa%
  pause
  =========================================
  同樣,如果要改變變量aa的內(nèi)容的話,就需要將合并結(jié)果“%aa%%bb%”賦值給變量aa。

4.?dāng)U充字符串

  “擴(kuò)充”這個(gè)詞匯來自于微軟自己的翻譯,意思就是對(duì)表示文件路徑的字符串進(jìn)行特殊的處理,具體功能羅列如下:
  =========================================
  ~I - 刪除任何引號(hào)("),擴(kuò)充 %I
  %~fI - 將 %I 擴(kuò)充到一個(gè)完全合格的路徑名
  %~dI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)
  %~pI - 僅將 %I 擴(kuò)充到一個(gè)路徑
  %~nI - 僅將 %I 擴(kuò)充到一個(gè)文件名
  %~xI - 僅將 %I 擴(kuò)充到一個(gè)文件擴(kuò)展名
  %~sI - 擴(kuò)充的路徑只含有短名
  %~aI - 將 %I 擴(kuò)充到文件的文件屬性
  %~tI - 將 %I 擴(kuò)充到文件的日期/時(shí)間
  %~zI - 將 %I 擴(kuò)充到文件的大小
  %~$PATH:I - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充
  到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名
  未被定義,或者沒有找到文件,此組合鍵會(huì)擴(kuò)充到
  空字符串
  可以組合修飾符來得到多重結(jié)果:
  %~dpI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑
  %~nxI - 僅將 %I 擴(kuò)充到一個(gè)文件名和擴(kuò)展名
  %~fsI - 僅將 %I 擴(kuò)充到一個(gè)帶有短名的完整路徑名
  %~dp$PATH:i - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充
  到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑。
  %~ftzaI - 將 %I 擴(kuò)充到類似輸出線路的 DIR
  =========================================
  以上內(nèi)容引用于for /?幫助信息。其中的I代表變量I,不過需要說明的是,不是所有的變量都能夠進(jìn)行擴(kuò)充的,有兩個(gè)條件:1.該字符串代表一個(gè)文件路徑;2.變量要用%x來表示,x可取a-z A-Z 0-9共62個(gè)字符中的任意一個(gè)。舉例說明:
  =========================================
  @echo off
  echo 正在運(yùn)行的這個(gè)批處理:
  echo 完全路徑:%0
  echo 去掉引號(hào):%~0
  echo 所在分區(qū):%~d0
  echo 所處路徑:%~p0
  echo 文件名:%~n0
  echo 擴(kuò)展名:%~x0
  echo 文件屬性:%~a0
  echo 修改時(shí)間:%~t0
  echo 文件大小:%~z0
  pause
  =========================================
  其中的%0是批處理里面的參數(shù),代表當(dāng)前運(yùn)行的批處理的完全路徑。類似的還有%1-%9,分別代表傳遞來的第1-9個(gè)參數(shù)。例子如下:
  ===============================================
  @echo off
  set aa=C:\Windows\PPP\a.btx
  call :deal aaa %aa% "c c" ddd eee
  pause>nul
  exit
  :deal
  echo %%0 = %0
  echo %%1 = %1
  echo %%2 = %2
  echo %%3 = %3
  echo %%4 = %4
  echo %%5 = %5
  ===============================================
  其中,變量aa在之前是不可以擴(kuò)充的,通過call命令并將aa作為參數(shù)傳遞給子函數(shù):deal,將aa變量轉(zhuǎn)換成了變量%1,即符合%x格式,從而可以進(jìn)行字符串?dāng)U充。
  至于%x中x取a-z A-Z的形式,可以復(fù)習(xí)一下for語句,for語句里面的變量就是用%x來表示的,因而可以直接進(jìn)行擴(kuò)充。

數(shù)值計(jì)算簡介

  批處理里面的數(shù)值計(jì)算功能較弱,只能夠進(jìn)行整型計(jì)算,忽略浮點(diǎn)數(shù)的小數(shù)部分;同時(shí)數(shù)值計(jì)算的范圍也受限于系統(tǒng)位數(shù),對(duì)于目前較為常見的32位機(jī)來說,數(shù)值計(jì)算能處理的數(shù)值范圍為0x80000000h~0x7FFFFFFFh,即-2147483648~+2147483647。
  數(shù)值計(jì)算需要使用set命令,具體格式為“set /a expression”。其中,expression代表計(jì)算表達(dá)式,計(jì)算表達(dá)式跟C語言里面的表達(dá)式基本上完全一致。set支持的運(yùn)算符也跟C語言里面的一樣,只是沒有了増一減一。set支持的運(yùn)算符及優(yōu)先級(jí)排序如下:
  =========================================
  () - 分組
  ! ~ - - 一元運(yùn)算符(邏輯非、按位非、取負(fù))
  * / % - 算數(shù)運(yùn)算符(乘、除得商、除得余數(shù),即取余)
  + - - 算數(shù)運(yùn)算符(加、減)
  << >> - 邏輯移位(左移一位、右移一位)
  & - 按位“與”
  ^ - 按位“異”
  | - 按位“或”
  = *= /= %= += -= - 賦值
  &= ^= |= <<= >>=
  , - 表達(dá)式分隔符(set可一次處理多個(gè)表達(dá)式)
  =========================================
  我們知道,批處理中取變量的值是需要用%或者!的,而在set /a 中,直接用變量名稱即可取得變量的值。另外,set支持八進(jìn)制(數(shù)字前綴0)、十進(jìn)制(數(shù)字無前綴)和十六進(jìn)制(數(shù)字前綴0x),且支持不同進(jìn)制之間的計(jì)算,如set /a a=123+0123+0x123,計(jì)算及顯示結(jié)果為十進(jìn)制。

批處理概念方法簡介

  學(xué)習(xí)有關(guān)批處理的一些比較瑣碎、但又比較有價(jià)值的一些知識(shí),運(yùn)用這些知識(shí)后,才有條件更好的實(shí)現(xiàn)的批處理的功能,并能使批處理擺脫黑白世界而顯得更加多姿多彩。

(一)環(huán)境變量

  所謂“環(huán)境變量”,實(shí)際上就是C語言里面的“變量”的意思。批處理的變量可以分為兩類,由系統(tǒng)定義的系統(tǒng)變量和由用戶根據(jù)需要自定義的用戶變量。
  【 1.系統(tǒng)變量 】
  批處理的一些變量是由操作系統(tǒng)事先定義好的,可以適用于任何批處理,我們稱這些特殊的變量為“系統(tǒng)變量”。系統(tǒng)變量有很多個(gè),包括硬件類、操作系統(tǒng)類、文件路徑類、系統(tǒng)時(shí)間類等。要查看所有的系統(tǒng)變量,請(qǐng)新打開一個(gè)cmd窗口,輸入set回車即可。對(duì)幾個(gè)比較常用的變量解釋如下:
  ComputerName 計(jì)算機(jī)名,即右鍵 我的電腦--屬性--計(jì)算機(jī)名 選項(xiàng)卡中的“完整的計(jì)算機(jī)名稱”
  ComSpec cmd.exe完整路徑名
  HomeDrive 系統(tǒng)分區(qū)盤符,一般都是C盤,故而HomeDrive=C:
  Path 可執(zhí)行文件默認(rèn)搜索路徑。這個(gè)東東非常重要!待會(huì)兒單獨(dú)講解…
  ProgramFiles 就是系統(tǒng)的Program Files的路徑啦,一般都是C:\Program Files,這就是安裝軟件時(shí)默認(rèn)的安裝路徑了
  Prompt 個(gè)性化設(shè)置cmd提示符的必備武器!不過,我沒怎么用過~
  SystemDrive 包含系統(tǒng)根目錄的分區(qū),其實(shí)就是HomeDrive了
  SystemRoot 系統(tǒng)根目錄路徑,一般都是C:\WINDOWS
  Temp、Tmp 文件、程序等可使用的臨時(shí)目錄,默認(rèn)是C:\WINDOWS\Temp或Tmp。幾乎所有的程序在運(yùn)行時(shí)都會(huì)在這個(gè)目錄里面“臨時(shí)”寫入文件。一般情況下,程序?qū)懭氲?a target="_blank">臨時(shí)文件都應(yīng)該被該程序刪除,可惜的是,大部分的程序都很健忘,導(dǎo)致這個(gè)文件夾占據(jù)的空間越來越大,自然也就使我們的系統(tǒng)增肥嘍。所以,我們要把它修改到其他分區(qū),并且時(shí)時(shí)的清理里面的臨時(shí)文件。
  UserName 當(dāng)前用戶名,即所登陸的賬戶名
  UserProfile 當(dāng)前用戶的配置目錄,一般都是C:\Documents and Settings\%UserName%。默認(rèn)情況下,我們的桌面就是這個(gè)目錄下面的“桌面”文件夾;我的文檔就是這個(gè)目錄下面的“My Documents”文件夾。所以啦,往桌面上或我的文檔里面放東西就是放到這個(gè)文件夾下面了,也就是放到C盤了,重裝系統(tǒng)時(shí)要覆蓋C盤內(nèi)容的,所以桌面上或我的文檔里面的東西當(dāng)然就會(huì)Gone with the Wind了~解決方法有兩個(gè),一是保持良好的習(xí)慣,不把重要文件放到這兩個(gè)地方;二是,修改默認(rèn)設(shè)置,將這兩個(gè)文件夾都移到其他分區(qū)。
  WinDir 操作系統(tǒng)路徑,其實(shí)就是SystemRoot了

(二)用戶變量

  編寫批處理程序時(shí),用戶根據(jù)需要自己定義的變量稱之為用戶變量。用戶變量類似于C語言里面的變量,僅僅在定義該變量的程序中有效。
  用戶變量由set命令定義,這是批處理中非常非常重要的一個(gè)操作,從而使set命令成為批處理里面使用頻率最高的幾個(gè)命令之一。關(guān)于set命令的使用,參考set /?,本教程也會(huì)在后面對(duì)其進(jìn)行講解。
  【 3.變量引用 】
  前面的幾節(jié)課里面,我們已經(jīng)看到了如何引用變量,即直接用變量名操作變量,通過"%"或"!"來獲取變量的值。其中,只有在for語句里面重復(fù)對(duì)同一變量多次賦值時(shí)才需要使用"!",并且在使用"!"調(diào)用變量時(shí),要首先“啟用延遲環(huán)境變量擴(kuò)充”,啟動(dòng)命令為:SetLocal EnableDelayedExpansion。另外需要說明的是,“啟用延遲環(huán)境變量擴(kuò)充”后,所有的"!"都將被視為“取變量值”的特殊符號(hào),即使用"^!"也不能輸出符號(hào)"!"。若要輸出"!",則需要“停用延遲環(huán)境變量擴(kuò)充”,命令為:SetLocal DisableDelayedExpansion

(三)參數(shù)

  
  跟C語言類似,在調(diào)用函數(shù)或其他批處理時(shí)可能需要傳遞參數(shù)。批處理的參數(shù)傳遞分為直接和間接兩種傳遞參數(shù)的方法。
  【 1.直接傳遞 】
  直接傳遞參數(shù),即在使用call命令時(shí),不使用任何參數(shù),在子函數(shù)或子批處理里面直接對(duì)主函數(shù)(也稱父批處理)里面的變量進(jìn)行修改。這跟匯編語言里面的參數(shù)傳遞方式類似。
  直接傳遞參數(shù)舉例:
  ===============================================
  @echo off
  setlocal enabledelayedexpansion
  set var=aCdehiM,?mnrstW y
  echo %var%
  call :deal
  setlocal disabledelayedexpansion
  set var=%var:?=!%
  echo %var%
  pause>nul
  exit
  :deal
  set tm=!var!
  set var=
  for %%i in (6,3,11,11,16,15,1,4,11,5,12,13,9,0,12,7,15,14,5,10,2,16,18,8) do (
  set var=!var!!tm:~%%i,1!
  )
  goto :eof
  ===============================================
  可以發(fā)現(xiàn),當(dāng)我們把變量var作為參數(shù)賦予子函數(shù):deal后,子函數(shù)對(duì)var的值進(jìn)行了修改;當(dāng)子函數(shù)返回后,主函數(shù)里面的var的值就已經(jīng)是子函數(shù)里面var被修改后的值了。
  該例子中,使用了本節(jié)課前面講到的setlocal enabledelayedexpansion和setlocal disabledelayedexpansion,前者保證了var在for循環(huán)里面能夠根據(jù)我們的意愿進(jìn)行處理,后者保證了能夠正確輸出符號(hào)"!"。另外例子中還使用了命令set,利用set對(duì)字符串進(jìn)行了處理。還有一個(gè)地方使用了語句goto :eof,該語句相當(dāng)于C語言里面的return或匯編語言里面的RET,即子程序返回命令。需要說明的是,當(dāng)子函數(shù)本身就在批處理文件的末尾的話,我們是可以省略這句話的,比如將此例的goto :eof刪除是不會(huì)產(chǎn)生任何影響的。
  【 2.間接傳遞 】
  間接傳遞參數(shù),即在使用call命令時(shí),在其后面添加參數(shù),形如call {[:label][ChildBatch]} Parameter1 Parameter2 ... ParameterN。這跟C語言里面?zhèn)鬟f參數(shù)的格式類似。不同于C語言,批處理中的子函數(shù)不需要定義形參,更不需要指定參數(shù)的個(gè)數(shù)。傳遞過來的參數(shù),在子函數(shù)或子批處理里面是以%1~%9的形式表示的,即%1~%9分別表示傳遞過來的第1~9個(gè)參數(shù)。
  ===============================================
  @echo off
  call :deal aaa bbb "c c" ddd eee
  pause>nul
  exit
  :deal
  echo %%0 = %0
  echo %%1 = %1
  echo %%2 = %2
  echo %%3 = %3
  echo %%4 = %4
  echo %%5 = %5
  ===============================================
  通過這個(gè)例子就可以清晰的看到%n參數(shù)表示法的用法。參數(shù)列表中包含空格的依舊要用雙引號(hào)(")引起來;另外,也可以看到,%0已經(jīng)變成了子函數(shù)的標(biāo)號(hào)了,而不是父批處理的文件名全稱。
  【 3.區(qū)別 】
  這兩種參數(shù)傳遞方法本質(zhì)上是沒有區(qū)別的,形式上,直接傳遞直接對(duì)原變量進(jìn)行操作,丟失了原變量的值;間接傳遞則通過%n對(duì)原變量進(jìn)行了簡單的備份,并且通用性更強(qiáng),即不限定原變量的名稱。另外,使用%n還有一個(gè)非常大的好處,就是可以通過%~*i來加強(qiáng)處理變量的能力。關(guān)于%~*i,詳細(xì)內(nèi)容參見for /?。
  針對(duì)二者的差別,可以根據(jù)情況決定使用哪種傳遞方式:
  --1.作為參數(shù)的變量名固定、且在子函數(shù)中不需要對(duì)其進(jìn)行備份的情況下,使用直接傳遞法;
  --2.若將子函數(shù)作為一個(gè)通用的程序模塊,以適應(yīng)于對(duì)不同變量的處理,或者作為參數(shù)的變量不需要備份時(shí),使用間接傳遞法。
  具體使用哪種方法,還需根據(jù)實(shí)際情況或使用習(xí)慣進(jìn)行選擇。

(四)返回值

  有些命令在執(zhí)行之后將會(huì)返回一定的錯(cuò)誤值(errorlevel),可以通過errorlevel的值判斷命令執(zhí)行的狀況。這點(diǎn)類似于C語言里面的exit(num),num就是錯(cuò)誤代碼。
  獲取返回值errorlevel的方法就是,在執(zhí)行命令后,立馬調(diào)用返回值errorlevel,如echo %errorlevel%或者if %errorlevel%==1等命令。
  errorlevel舉例:
  ===============================================
  @echo off
  reg add HKCU /v try /f>nul
  reg delete HKCU /v try /f
  if errorlevel 0 (echo  刪除成功!) else (echo 刪除失敗!)
  reg delete HKCU /v try /f
  if %errorlevel%==0 (echo 刪除成功!) else (echo 刪除失敗!)
  pause>nul
  ===============================================
  上面例子中,由于第一成功的刪除了注冊(cè)表,導(dǎo)致第二次因?yàn)檎也坏阶?cè)表而宣告失敗。同時(shí)我們也看到了errorlevel的使用方法,即if errorlevel 0和if %errorlevel%==0是一樣的。也許你注意到了,里面還有個(gè)笑臉呢~O(∩_∩)O哈哈~這就是ASCII碼啦,后面跟你講啊…
  一般情況下,程序或命令成功執(zhí)行時(shí),返回的errorlevel是0,錯(cuò)誤時(shí)返回1或更高的值。當(dāng)然,有些命令是沒有返回值的,這點(diǎn)需要注意。
  嗯,有沒有想起前面有個(gè)類似的東西啊?對(duì)了,那就是||和&&了,這兩個(gè)符號(hào)就是根據(jù)errorlevel的值來進(jìn)行邏輯判斷的~

(五)用戶交互

  
  批處理,黑框白字是它最著名的特征。雖然當(dāng)初DOS為人們使用計(jì)算機(jī)做出了莫大的貢獻(xiàn),但在Windows盛行的今天,人們已經(jīng)疏遠(yuǎn)并且懼怕那個(gè)黑色的窗口了。微軟為了讓先天有著批量處理“體力活”能力的DOS避免“冷酷”,便于接近,特意提供了幾個(gè)小命令,加強(qiáng)批處理的用戶交互功能。
  【 1.視窗 】
  首先我們要DIY它的窗口。使用命令:color、mode、msg。
  --1.設(shè)置窗口背景色和字體顏色by color。詳細(xì)內(nèi)容參見color /?。
  --2.設(shè)置窗口大小by "MODE CON [COLS=c] [LINES=n]",cols即寬度,lines即高度。
  --3.GUI交互窗口by msg。詳細(xì)內(nèi)容參見msg /?。
  視窗DIY舉例:
  ===============================================
  @echo off
  set a=10
  set b=0
  :tex
  set /a a+=3
  set /a b+=1
  mode con cols=%a% lines=%b%
  if %a% lss 60 goto :tex
  echo O(∩_∩)O 圣誕快樂 O(∩_∩)O
  set a=15,a6,2e,d0,34,8b,4f,9d,5e
  for %%i in (%a%) do (
  ping -n 2 127.1>nul
  color %%i
  )
  for %%i in (%a%,%a%) do (
  ping -n 1 127.1>nul
  color %%i
  )
  >>ms.txt echo */. . . * .
  >>ms.txt echo .\* . [] * __
  >>ms.txt echo */ . ./\~~~~~~~~~~~~'\. ^|
  >>ms.txt echo \* ,/,..,\,...........,\.
  >>ms.txt echo ^|^| ..▎# ▎田 田 ▎ ^| ▎
  >>ms.txt echo ^|^| ^&^&▎ ▎ ▎'^|'▎ o
  >>ms.txt echo ^|^| ##■■■■■■■■■■〓
  msg %username% /w /time:3600 <ms.txt
  del ms.txt
  pause
  ===============================================
  【 2.聲音 】
  呵呵,是不是注意到了批處理沒有聲音吶?閑話不說,直接做實(shí)驗(yàn)吧 ^_^
  ===============================================
  @echo off
  echo 做好準(zhǔn)備,響了啊!!
  pause
  cls
  echo 
  echo 怎么樣?呵呵,刺激吧~
  pause
  cls
  mshta vbscript:createobject("sapi.spvoice").speak("Merry Christmas and Happy New Year!")(window.close)
  pause
  ===============================================
  此處,這個(gè)就是調(diào)用vbs的方法:vbscript:createobject("sapi.spvoice").speak("Merry Christmas and Happy New Year!")
  speak 有人說如果tts安裝了中文引擎是可以講中文的。
  其實(shí)不然我測試了一下只要打上拼音(一個(gè)字和一個(gè)字的拼音中間需要加空格)就可以說中文啦~
  【 3.控制 】
  在運(yùn)行批處理的過程中,我們?nèi)绾胃深A(yù)批處理呢?呵呵,直接點(diǎn)叉叉就可以結(jié)束它了!嗯,不錯(cuò),不過,太野蠻了~
  --1.暫停批處理:直接按鍵盤上的Pause鍵嘍
  --2.終止批處理:組合鍵Ctrl+C。不過,有時(shí)候它好像響應(yīng)的不太積極啊…

(六)ASCII碼

  前面的例子中,我們已經(jīng)使用過一次ASCII碼了,也就是那個(gè)笑臉。ASCII碼是圖形化的符號(hào),可以用來點(diǎn)綴我們的批處理的。
  在cmd窗口中我們可以通過任意一個(gè)字符的ASCII碼來輸入該字符,比如Ctrl+G、Ctrl+N等,字母a-z對(duì)應(yīng)ASCII碼的97-122。對(duì)于ASCII碼大于26的字符,可以通過這個(gè)方法來輸入:按住Alt鍵不松,通過小鍵盤輸入ASCII碼的十進(jìn)制值,松開Alt鍵即可。

批處理文件的應(yīng)用

  批處理文件是將一系列命令按一定的順序集合為一個(gè)可執(zhí)行的文本文件,其擴(kuò)展名為BAT。
  1. REM
  REM 是個(gè)注釋命令一般是用來給程序加上注解的,該命令后的內(nèi)容在程序執(zhí)行的時(shí)候?qū)⒉粫?huì)被顯示和執(zhí)行。例:
  REM 你現(xiàn)在看到的就是注解,這一句將不會(huì)被執(zhí)行。在以后的例子中解釋的內(nèi)容都REM 會(huì)放在REM后面。請(qǐng)大家注意。
  2. ECHO
  ECHO 是一個(gè)回顯命令主要參數(shù)有OFF和 ON,一般用ECHO message來顯示一個(gè)特定的消息 。例:
  Echo off
  Rem 以上代表關(guān)閉回顯即不顯示所執(zhí)行的命令
  Echo 這個(gè)就是消息。
  Rem 以上代表顯示“這就是消息”這列字符
  執(zhí)行結(jié)果:
  C:\>ECHO.BAT
  這個(gè)就是消息。
  3. GOTO
  GOTO 即為跳轉(zhuǎn)的意思。在批處理中允許以“:XXX”來構(gòu)建一個(gè)標(biāo)號(hào)然后用GOTO :標(biāo)號(hào)直接來執(zhí)行標(biāo)號(hào)后的命令。例
  :LABEL
  REM 上面就是名為LABEL的標(biāo)號(hào)。
  DIR C:\
  DIR D:\
  GOTO LABEL
  REM 以上程序跳轉(zhuǎn)標(biāo)號(hào)LABEL處繼續(xù)執(zhí)行。
  4.CALL
  CALL 命令可以在批處理執(zhí)行過程中調(diào)用另一個(gè)批處理,當(dāng)另一個(gè)批處理執(zhí)行完后再繼續(xù)執(zhí)行原來的批處理。例:
  批處理2.BAT內(nèi)容如下:
  ECHO 這就是2的內(nèi)容
  批處理1.BAT內(nèi)容如下:
  ECHO 這是1的內(nèi)容
  CALL 2.BAT
  ECHO 1和2的內(nèi)容全部顯示完成
  執(zhí)行結(jié)果如下:
  C:\>1.BAT
  這是1的內(nèi)容
  這就是2的內(nèi)容
  1和2的內(nèi)容全部顯示完成
  5.PAUSE
  PAUSE 停止系統(tǒng)命令的執(zhí)行并顯示下面的內(nèi)容。例:
  C:\> PAUSE
  請(qǐng)按任意鍵繼續(xù) . . .
  6. IF
  IF 條件判斷語句,語法格式如下:
  IF [NOT] ERRORLEVEL number command
  IF [NOT] string1==string2 command
  IF [NOT] EXIST filename command
  說明:
  [NOT] 將返回的結(jié)果取反值即“如果沒有”的意思。
  ERRORLEVEL 是命令執(zhí)行完成后返回的退出值
  Number 退出值的數(shù)字取值范圍0~255。判斷時(shí)值的排列順序應(yīng)該又大到小。返回的值大于或等于指定的值時(shí)條件成立。
  string1==string2 string1和string2都為字符的數(shù)據(jù),英文字符的大小寫將看做不同,這個(gè)條件中的等于號(hào)必須是2個(gè)(絕對(duì)相等),條件相等后即執(zhí)行后面的 command
  EXIST filename 為文件或目錄存在的意思。
  IF ERRORLEVEL這條語句必須放在某一個(gè)命令后面。執(zhí)行命令后由IF ERRORLEVEL來判斷命令的返回值。

posted on 2011-08-29 11:33 Robertxiao 閱讀(192) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩在线综合| 亚洲欧美激情视频在线观看一区二区三区 | 国产一区二区激情| 韩国欧美一区| 亚洲人成在线观看一区二区| 亚洲欧洲在线播放| 9色porny自拍视频一区二区| 欧美一区二区三区视频免费| 亚洲女女做受ⅹxx高潮| 欧美在线关看| 免费亚洲电影在线观看| 亚洲国产视频a| 99re视频这里只有精品| 亚洲免费人成在线视频观看| 久久久久久久综合| 欧美日韩中文字幕日韩欧美| 国产伦精品一区二区三区| 亚洲第一天堂无码专区| 亚洲一区二区黄| 久久先锋影音av| 99视频在线观看一区三区| 午夜在线电影亚洲一区| 欧美大色视频| 国产日产精品一区二区三区四区的观看方式| 国产一区二区主播在线| 99精品免费网| 美女主播一区| 一区二区三区av| 蜜臀久久99精品久久久久久9| 欧美日韩在线影院| 亚洲精美视频| 卡通动漫国产精品| 亚洲在线第一页| 欧美另类一区二区三区| 国产综合色产| 亚洲欧美中文日韩v在线观看| 欧美高清一区二区| 欧美自拍偷拍午夜视频| 国产精品高清在线| 日韩网站在线| 欧美fxxxxxx另类| 亚洲欧洲av一区二区| 欧美精品亚洲一区二区在线播放| 国内精品视频在线播放| 亚洲在线观看免费视频| 亚洲欧洲日产国产综合网| 久久久久国色av免费观看性色| 国产精品免费看片| 亚洲一区二区三区精品动漫| 亚洲福利视频一区二区| 久久久久网址| 激情丁香综合| 久久亚洲综合| 久久久久一区二区三区四区| 国产欧美日韩视频一区二区三区 | 国模套图日韩精品一区二区| avtt综合网| 亚洲精品自在久久| 欧美黑人在线播放| 激情小说亚洲一区| 亚洲影院免费观看| 免费中文字幕日韩欧美| 亚洲黄页一区| 亚洲国产综合在线| 亚洲天堂成人在线观看| 欧美+日本+国产+在线a∨观看| 一区二区三区日韩欧美| 免费视频一区| 国内外成人免费激情在线视频| 亚洲视频电影在线| 亚洲国产成人精品女人久久久| 欧美一区二区精品久久911| 欧美午夜视频在线| 99热免费精品在线观看| 欧美多人爱爱视频网站| 久久精品99| 国产亚洲欧美色| 欧美一区二区三区免费观看| 99re6这里只有精品视频在线观看| 久久亚洲精品视频| 韩国一区二区三区美女美女秀| 欧美一区二区三区四区视频| 一区二区三区精品视频| 欧美三级视频在线播放| 夜夜狂射影院欧美极品| 亚洲激情网站免费观看| 欧美视频国产精品| 久久久久久久久伊人| 欧美福利专区| 欧美一级理论性理论a| 久久一二三国产| 亚洲午夜精品网| 久久精品在这里| 国产精品大全| 国产一区二区三区日韩| 亚洲国产成人高清精品| 国产精品视频不卡| 欧美顶级少妇做爰| 国产精品久久久久久影视| 久久亚洲精品网站| 欧美三日本三级少妇三2023| 久久综合五月天婷婷伊人| 欧美日韩一二三区| 免费成人av在线| 国产精品欧美日韩一区二区| 免费一区二区三区| 国产精品欧美一区喷水 | 亚洲一区二区三区精品动漫| 欧美在线观看一二区| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久精品国产第一区二区三区最新章节 | 久久三级福利| 欧美日韩成人综合在线一区二区| 久久久成人网| 国产精品av久久久久久麻豆网| 男同欧美伦乱| 国产欧美一区二区三区沐欲| 亚洲国产精品视频| 国产主播精品在线| 亚洲专区免费| 亚洲一区二区三区免费观看| 蜜臀久久99精品久久久久久9| 久久www成人_看片免费不卡| 欧美日韩精品系列| 亚洲高清视频在线| 在线免费观看日本一区| 亚洲永久免费av| 亚洲视频播放| 欧美日韩精品在线播放| 欧美国产综合视频| 在线观看福利一区| 久久人人97超碰精品888| 久久精品一本| 国产日韩欧美另类| 亚洲欧美日韩一区在线| 亚洲欧美国产精品va在线观看| 欧美经典一区二区三区| 欧美激情精品| 亚洲国内自拍| 欧美成人精品1314www| 欧美大片在线观看一区| 亚洲国产欧美日韩精品| 欧美成人dvd在线视频| 欧美国产第一页| 亚洲欧洲美洲综合色网| 女人香蕉久久**毛片精品| 欧美激情a∨在线视频播放| 亚洲日本久久| 欧美久久久久久久久| 99在线热播精品免费| 亚洲一区欧美一区| 国产精品专区第二| 久久av一区二区三区亚洲| 久久综合九色综合久99| 亚洲国产精品视频一区| 欧美77777| 亚洲肉体裸体xxxx137| 日韩午夜免费| 国产精品二区二区三区| 亚洲欧美色婷婷| 免费在线观看日韩欧美| 亚洲精品在线三区| 欧美性做爰毛片| 亚洲欧美综合一区| 亚洲第一综合天堂另类专| 一区二区三区四区国产| 国产日韩精品视频一区二区三区 | 久久综合精品国产一区二区三区| 亚洲高清一区二| 亚洲欧美日韩在线不卡| 精品动漫3d一区二区三区| 欧美女人交a| 欧美在线视频免费| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲视频在线观看网站| 国产亚洲欧美另类中文| 一区二区三区四区五区在线| 欧美日韩精品中文字幕| 亚洲视频在线观看一区| 猛男gaygay欧美视频| 亚洲一二三区精品| 激情综合色丁香一区二区| 欧美精品久久久久久久久老牛影院 | av不卡在线看| 免费久久99精品国产自| 亚洲午夜精品久久| 伊伊综合在线| 国产精品另类一区| 欧美激情第4页| 久久国产精品亚洲va麻豆| 99热在这里有精品免费| 蜜臀久久99精品久久久久久9| 亚洲欧美亚洲| 一区二区三区四区五区在线| 亚洲第一久久影院| 国产有码在线一区二区视频| 欧美午夜激情视频| 欧美日韩国产在线| 欧美二区在线| 久久综合久久综合久久综合|