1。批處理命令:
2。批處理變數及其型別
dos可以說是弱型別的
沒有像c語言那樣分得很細
你想一次ping遍區域網
可以這樣做
for /l %i in (1,1,255) do @ping -a 192.168.0.%i
這樣就遍歷了從192.168.0.1到192.168.0.255這256個位址
注意這是在cmd下的輸入
如果想實現批處理要將其中的"%"用"%%"替代
for的l引數說明變數是整數型別
這樣迴圈才有意義
還有你說手動將變數加一操作
可以使用set命令
但要注意引數的使用
比如一條命令
set aa=10
這句話單拿出來很難說這個aa是個什麼型別
因為10可以是個數字
但是 set aa=shily
則不然
shily只能是字串
至於加法等算術操作可以通過a引數來說明
比如在set aa=10的前提下執行
set /a aa=%aa%+1
那麼aa的值就成了11
但是如果這樣簡單的寫
set aa=%aa%+1
那麼aa的值是什麼呢?
事實上系統只做簡單的拼接
aa的值邊成了10+1
這是個字串
於是上文的迴圈可以使用goto 來做了
set ip=0
:loop
if %ip%==255 goto end
set /a ip=%ip%+1
ping 192.168.0.%ip%
goto loop
:end
這樣就實現了便歷的功能
但是for語句不是更方便嗎?
一些小問題:
定義過變數後使用%***%的格式來訪問變數
如果變數不存在
並不會出現嚴重的錯誤
比如set aa=%abcd%
而abcd變數並不存在
那麼aa的值就是%abcd%
在學習的時候檢測變數的值可以使用
echo %aa%的格式
還有個人性化的地方
set aa=aaaaaaa
aet /a bb=%aa%+1
echo %bb%
那麼bb的值是1
這是錯誤的
aa本不是整數變數怎麼能加一呢
所以系統將它當成0來處理
set aa=15+15
echo %aa%
set bb=%aa%+1
echo %bb%
將先輸出"15+15"然後輸出"31"
這是人性化的地方
系統將15+15當成了30來評估
好了就先寫這些
官方幫助參考
for /?
set /?
dos和批處理命令
這些是xp下的dos和批處理命令,dos用的可能不是太多,寫批處理的時候還是需要的,備查!assoc 顯示或修改副檔名關聯。at 計畫在計算機上執行的命令和程式。attrib 顯示或更改檔案屬性。break 設定或清除擴充套件式 ctrl c 檢查。cacls 顯示或修改檔案的訪問控制列表 acls...
批處理命令 goto 和
談起goto,相信大家應該想到的是面向過程程式設計。其實,這就相當於當有人向你談起class,意味著你就懂得物件導向程式設計。如果你不懂,那麼你們的溝通將會很困難。不懂我說的啥意思嗎?請參見曾經分享王路的一篇文章 永遠不要對乙個外行聊你的專業 一般常規的批處理命令,按照自上而下的順序逐行執行,也就是...
批處理命令
time 2019 07 05 author ruo xiao 1 var 告訴編譯器,var 是變數,不是字串。2 var,僅用在 for 迴圈中。栗子 echo off set vars jack lucy nasa for t in vars do echo t pause 執行結果 注意 1...