BAT 批處理指令碼教程 四

2021-09-10 05:51:58 字數 2399 閱讀 5974

批處理中的變數

批處理中的變數,我把他分為兩類,分別為"系統變數"和"自定義變數"

我們現在來詳解這兩個變數!

一、系統變數

他們的值由系統將其根據事先定義的條件自動賦值,也就是這些變數系統已經給他們定義了值,

不需要我們來給他賦值,我們只需要呼叫而以! 我把他們全部列出來!

這麼多系統變數,我們如何知道他的值是什麼呢?

在cmd裡輸入 echo %windir%

這樣就能顯示乙個變數的值了!

舉個實際例子,比如我們要複製檔案到當前帳號的啟動目錄裡就可以這樣

copy d:\1.bat "%userprofile%\「開始」選單\程式\啟動\"

%username% 本地 返回當前登入的使用者的名稱。 注意有空格的目錄要用引號引起來

另外還有一些系統變數,他們是代表乙個意思,或者乙個操作!

他們分別是%0 %1 %2 %3 %4 %5 ......一直到%9 還有乙個%*

%0 這個有點特殊,有幾層意思,先講%1-%9的意思.

%1 返回批處理的第乙個引數

%2 返回批處理的第二個引數

%3-%9依此推類

反回批處理引數?到底怎麼個返回法?

我們看這個例子,把下面的**儲存為test.bat然後放到c盤下

@echo off

echo %1 %2 %3 %4

echo %1

echo %2

echo %3

echo %4

進入cmd,輸入cd c:\

然後輸入 test.bat 我是第乙個引數 我是第二個引數 我是第三個引數 我是第四個引數

注意中間的空格,我們會看到這樣的結果:

我是第乙個引數 我是第二個引數 我是第三個引數 我是第四個引數

我是第乙個引數

我是第二個引數

我是第三個引數

我是第四個引數

對比下**,%1就是」我是第乙個引數」 %2就是」我是第二個引數」

怎麼樣理解了吧!

這些%1和%9可以讓批處理也能帶引數執行,大大提高批處理功能!

還有乙個%* 他是什麼呢?他的作用不是很大,只是返回引數而已,不過他是一次返回全部引數的值,不用在輸入%1 %2來確定乙個個的

例子

@echo off

echo %*

同樣儲存為test.bat 放到c盤

進入cmd,輸入cd c:\

然後輸入 test.bat 我是第乙個引數 我是第二個引數 我是第三個引數 我是第四個引數

可以看到他一次把全部引數都顯示出來了

好現在開始講那個比較特殊的%0

%0 這個不是返回引數的值了,他有兩層意思!

第一層意思:返回批處理所在絕對路徑

例子:

@echo off

echo %0

pause

儲存為test.bat放在桌面執行,會顯示如下結果

"c:\documents and settings\administrator\桌面\test.bat"

他把當前批處理執行的所在路經列印出來了,這就是返回批處理所在絕對路徑的意思

第二層意思:無限迴圈執行bat

例子:

@echo off

net user

%0

儲存為bat執行,他就會無限迴圈執行net user這條命令,直到你手動停止.

龍捲風補充:其實%0就是第一引數%1前面那個引數,當然就是批處理檔名(包括路徑)。

以上就是批處理中的一些系統變數,另外還有一些變數,他們也表示一些功能,

for命令中的那些就是,for變數已經說過,就不講了.

二、自定義變數

故名思意,自定義變數就是由我們來給他賦予值的變數

要使用自定義變數就得使用set命令了,看例子.

@echo off

set var=我是值

echo %var%

pause

儲存為bat執行,我們會看到cmd裡返回乙個 "我是值"

var為變數名,=號右變的是要給變數的值

這就是最簡單的一種設定變數的方法了

如果我們想讓使用者手工輸入變數的值,而不是在**裡指定,可以用用set命令的/p引數

例子:

@echo off

set /p var=請輸入變數的值

echo %var%

pause

var變數名 =號右邊的是提示語,不是變數的值

變數的值由我們執行後自己用鍵盤輸入! 

BAT批處理指令碼

echo off 與 echo on 前者為關閉回顯,後者為開啟回顯 當不想批處理檔案中的命令一行一行在dos中顯示出來時 因為全部顯示出來的話看起來會變得很雜亂 可以使用 echo off,將其放於程式的最上方就行了。先不把回顯關閉,執行乙個小的bat檔案,為 echo off title a c...

Bat批處理指令碼

bat for迴圈 在cmd視窗中 for variable in set do command command parameters 在批處理檔案中 for variable in set do command command parameters 想知道當前目錄下都有哪些檔案嗎?請用下面的 ec...

bat批處理指令碼程式設計

1 宣告變數 注意 前後不要留空格。隨便說一下,在bat中,連續兩個冒號表示注釋 set var1 test 如果要引用這個變數的話,可以這樣寫 var1 2 echo off on echo off 表示關閉echo列印命令 echo on表示開啟echo列印命令 舉例 echo hello wo...