BAT教程:第四節(批處理中的變數)

來源:互聯網
上載者:User

BAT教程:第四節(批處理中的變數)

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

系統變數:
他們的值由系統將其根據事先定義的條件自動賦值,也就是這些變數系統已經給他們定義了值,
不需要我們來給他賦值,  
%ALLUSERSPROFILE%本地 返回“所有使用者”配置檔案的位置。
%APPDATA%本地 返回預設情況下應用程式儲存資料的位置。
%CD%本地 返回目前的目錄字串。
%CMDCMDLINE%本地 返回用來啟動當前的 Cmd.exe 的準確命令行。
%CMDEXTVERSION%系統 返回當前的“命令處理常式擴充”的版本號碼。
%COMPUTERNAME%  系統 返回電腦的名稱。
%COMSPEC%  系統 返回命令列解譯器可執行程式的準確路徑。
%DATE%  系統 返回當前日期。使用與 date/t 命令相同的格式。由 Cmd.exe 產生。有關
date 命令的詳細資料,請參閱 Date。
%ERRORLEVEL%  系統 返回上一條命令的錯誤碼。通常用非零值表示錯誤。
%HOMEDRIVE%  系統 返回串連到使用者主目錄的本地工作站磁碟機代號。基於主目錄值而設定。用
戶主目錄是在“本機使用者和組”中指定的。
%HOMEPATH%  系統 返回使用者主目錄的完整路徑。基於主目錄值而設定。使用者主目錄是在“本
地使用者和組”中指定的。
%HOMESHARE%  系統 返回使用者的共用主目錄的網路路徑。基於主目錄值而設定。使用者主目錄是
在“本機使用者和組”中指定的。
%LOGONSERVER%  本地 返回驗證當前登入工作階段的網域控制站的名稱。
%NUMBER_OF_PROCESSORS%  系統 指定安裝在電腦上的處理器的數目。
%OS%  系統 返回作業系統名稱。Windows 2000 顯示其作業系統為 Windows_NT。
%PATH%系統 指定可執行檔的搜尋路徑。
%PATHEXT%系統 返回作業系統認為可執行檔副檔名的列表。
%PROCESSOR_ARCHITECTURE%  系統 返回處理器的晶片體繫結構。值:x86 或 IA64 基於
Itanium
%PROCESSOR_IDENTFIER%系統 返回處理器說明。
%PROCESSOR_LEVEL%  系統 返回電腦上安裝的處理器的型號。
%PROCESSOR_REVISION%系統 返回處理器的版本號碼。
%PROMPT%本地 返回當前解釋程式的命令提示字元設定。由 Cmd.exe 產生。
%RANDOM%系統 返回 0 到 32767 之間的任意十進位數字。由 Cmd.exe 產生。
%SYSTEMDRIVE%系統 返回包含 Windows server operatingsystem根目錄(即系統根目錄)
的磁碟機。
%SYSTEMROOT%  系統 返回 Windows server operatingsystem根目錄的位置。
%TEMP%和%TMP%系統和使用者 返回對當前登入使用者可用的應用程式所使用的預設臨時目錄。
有些應用程式需要 TEMP,而其他應用程式則需要 TMP。
%TIME%系統 返回目前時間。使用與time/t 命令相同的格式。由 Cmd.exe 產生。有關
time命令的詳細資料,請參閱 Time。
%USERDOMAIN%本地 返回包含使用者帳戶的域的名稱。
%USERNAME%本地 返回當前登入的使用者的名稱。
%USERPROFILE%本地 返回目前使用者的設定檔的位置。
%WINDIR%系統 返回作業系統目錄的位置。
這麼多系統變數,我們如何知道他的值是什麼呢?
在CMD裡輸入  echo%WINDIR%
windir變數名,
  
舉個實際例子,比如我們要複製檔案到當前帳號的啟動目錄裡就可以這樣
copyd:\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這條命令,直到你手動停止.
以上就是批處理中的一些系統變數,另外還有一些變數,他們也表示一些功能,
FOR命令中的那些就是,FOR變數已經說過,就不講了.
現在說自訂變數
故名思意,自訂變數就是由我們來給他賦予值的變數
要使用自訂變數就得使用set命令了,看例子.
@echo off
setvar=我是值
echo%var%
pause
儲存為BAT執行,我們會看到CMD裡返回一個  "我是值"
var為變數名,=號右變的是要給變數的值
這就是最簡單的一種設定變數的方法了
如果我們想讓使用者手工輸入變數的值,而不是在代碼裡指定,可以用用set命令的/p參數
例子:
@echo off
set/p var=請輸入變數的值
echo%var%
pause
var變數名  =號右邊的是提示,不是變數的值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.