Windows批处理命令学习二
作者:朱金燦
來源:http://blog.csdn.net/clever101
繼續學習Windows批處理命令。
批處理文件參數:
有點編程基礎的人都知道函數有參數.批處理文件也有參數。批處理文件還可以像C語言的函數一樣使用參數(相當于DOS命令的命令行參數),這需要用到一個參數表示符"%"。
%[1-9]表示參數,參數是指在運行批處理文件時在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數字符串用%1到%9順序表示。
動手實踐:
新建一個批處理文件a.bat,在里面輸入命令:
@echo off
ping %1
ping %2
然后在命令控制臺環境下輸入命令:C:\Users\zhu>C:\a.bat www.163.com www.sina.com
看看有什么效果,同時領悟下如何使用多個批處理文件參數。
if命令
if語句一共有3種模式,如下:
IF [NOT]string1==string2 command
IF [NOT]EXIST filename command
IF [NOT]ERRORLEVEL number command
NOT 指定只有條件為 false 的情況下, Windows XP 才應該執行該命令。
ERRORLEVEL number 如果最后運行的程序返回一個等于或大于指定數字的退出編碼,指定條件為 true。
string1==string2 如果指定的文字字符串匹配,指定條件為 true。
EXIST filename 如果指定的文件名存在,指定條件為 true。
command 如果符合條件,指定要執行的命令。如果指定的條件為 FALSE,命令后可跟一個執行 ELSE關鍵字后的命令的 ELSE 命令。
我們先講解第一種:
IF [NOT]string1==string2 command
自然語句意思:如果string1==string2,那么執行command
下面再舉個能實際應用的if語句.
自然語句:如果輸入的參數為3,那么顯示"a=3"
計算機語句:
@echo off
if"%1"=="3" echo "a=3"
或者寫成
@echo off
if %1==3echo "a=3"
注意:當要測試的時候,因在cmd底下,輸入1.bat 3.因為這里用了是傳遞參數,具體看文章前部分"批處理文件參數".
第二種:
IF [NOT]EXIST filename command
這條命令用語檢測文件是否存在.如果存在,執行command.如果不存在,則什么也不顯示.
如:我們想檢查e盤根目錄下是否有一個叫2.txt的文件.如果存在,則顯示exist.如果不存在,則什么也不顯示.
批處理命令如下:
@echo off
if existe:2.txt echo "exist 2.txt"
第三種:
比起前兩種,第三種比較難懂,我也看得半懂不懂的。查了一些資料,大致理解了,理解IF[NOT] ERRORLEVEL number command的這句的關鍵是ERRORLEVEL這個到底指什么?
原來每一行的DOS命令運行完,都有一個返回值(你可以把它比作是程序中的函數的返回值)。一般上一條命令的執行結果代碼只有兩結果,"成功"用0表示 "失敗"用1表示.。ERRORLEVEL就是用來保存這個返回值的。就是假如ERRORLEVEL大于等于number(number為你給定的常數或批處理文件參數),則執行command。
還是讓我們做實驗來理解吧。
動手實踐:
新建一個批處理文件a.bat,在里面輸入命令:
@echo off
ping %1
ping %2
然后在命令控制臺環境下輸入命令:C:\Users\zhu>C:\a.bat www.163.com www.sina.com
看看有什么效果,同時領悟下如何使用多個批處理文件參數。
@echo off
net user
IF ERRORLEVEL 1 echo net user 執行失敗了!
可能你要說:我想要提示執行命令的信息,那你可以這樣寫:
@echo off
net user
IF NOT ERRORLEVEL 1 echo net user 執行成功了!
可能你覺得這種寫法別扭,同時你覺得應該是提示執行成功,反之提示失敗。呵呵,那么我們就改成下面試試:
@echo off
net user
if%ERRORLEVEL% == 0 (
echo netuser 執行成功了!
)else (
echo netuser 執行失敗了!
)
這是if和else的配套使用,其中if %ERRORLEVEL% == 0是假如ERRORLEVEL等于0。值得注意的是if和else的配套使用有著嚴格的使用格式,必須是:
if%ERRORLEVEL% == 0 (
command // 執行命令
)else (
command // 執行命令
)
goto命令
說實話,看完這個命令我立即想起C語言的goto語句。事實上這個命令和C語言的goto語句也非常相像,也很簡單。動手實踐下你就知道了。
新建一個批處理文件a.bat,在里面輸入命令:
@echo off
net user
if%ERRORLEVEL% == 0 goto successed
if%ERRORLEVEL% == 1 goto failed
:successed
echo netuser 執行成功!
gotoreturn
:failed
echo netuser 執行失敗!
:return
set命令
set命令我比較常用的是用來設置環境變量。它的用法很簡單,例子如下:
set hosts=c:/windows/system32/drivers/etc
注意:set命令只能設置當前cmd下才有效的環境變量。
參考文獻:
1.網上一位大俠(姓名不詳)寫的《批處理文件教程》
總結
以上是生活随笔為你收集整理的Windows批处理命令学习二的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字货币量化搬砖套利详解
- 下一篇: 小轿车奇瑞旗云2的带违不稳定嗡嗡的响是什