批處理命令和變數

2021-04-07 09:30:54 字數 1600 閱讀 2324

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...