dos批處理文件中的變量小結(jié)

字號:


    很多情況下我們需要用到一些批處理文件中的變量,方便我們執(zhí)行一些操作,這里簡單整理下,方便需要的朋友
    批處理中的變量,我把他分為兩類,分別為"系統(tǒng)變量"和"自定義變量"
    系統(tǒng)變量:
    他們的值由系統(tǒng)將其根據(jù)事先定義的條件自動賦值,也就是這些變量系統(tǒng)已經(jīng)給他們定義了值,
    不需要我們來給他賦值,我們只需要調(diào)用而以! 我把他們?nèi)苛谐鰜?
    %ALLUSERSPROFILE% 本地 返回“所有用戶”配置文件的位置。
    %APPDATA% 本地 返回默認情況下應(yīng)用程序存儲數(shù)據(jù)的位置。
    %CD% 本地 返回當(dāng)前目錄字符串。
    %CMDCMDLINE% 本地 返回用來啟動當(dāng)前的 Cmd.exe 的準確命令行。
    %CMDEXTVERSION% 系統(tǒng) 返回當(dāng)前的“命令處理程序擴展”的版本號。
    %COMPUTERNAME% 系統(tǒng) 返回計算機的名稱。
    %COMSPEC% 系統(tǒng) 返回命令行解釋器可執(zhí)行程序的準確路徑。
    %DATE% 系統(tǒng) 返回當(dāng)前日期。使用與 date /t 命令相同的格式。由 Cmd.exe 生成。有關(guān)
    date 命令的詳細信息,請參閱 Date。
    %ERRORLEVEL% 系統(tǒng) 返回上一條命令的錯誤代碼。通常用非零值表示錯誤。
    %HOMEDRIVE% 系統(tǒng) 返回連接到用戶主目錄的本地工作站驅(qū)動器號?;谥髂夸浿刀O(shè)置。用
    戶主目錄是在“本地用戶和組”中指定的。
    %HOMEPATH% 系統(tǒng) 返回用戶主目錄的完整路徑。基于主目錄值而設(shè)置。用戶主目錄是在“本
    地用戶和組”中指定的。
    %HOMESHARE% 系統(tǒng) 返回用戶的共享主目錄的網(wǎng)絡(luò)路徑。基于主目錄值而設(shè)置。用戶主目錄是
    在“本地用戶和組”中指定的。
    %LOGONSERVER% 本地 返回驗證當(dāng)前登錄會話的域控制器的名稱。
    %NUMBER_OF_PROCESSORS% 系統(tǒng) 指定安裝在計算機上的處理器的數(shù)目。
    %OS% 系統(tǒng) 返回操作系統(tǒng)名稱。Windows 2000 顯示其操作系統(tǒng)為 Windows_NT。
    %PATH% 系統(tǒng) 指定可執(zhí)行文件的搜索路徑。
    %PATHEXT% 系統(tǒng) 返回操作系統(tǒng)認為可執(zhí)行的文件擴展名的列表。
    %PROCESSOR_ARCHITECTURE% 系統(tǒng) 返回處理器的芯片體系結(jié)構(gòu)。值:x86 或 IA64 基于
    Itanium
    %PROCESSOR_IDENTFIER% 系統(tǒng) 返回處理器說明。
    %PROCESSOR_LEVEL% 系統(tǒng) 返回計算機上安裝的處理器的型號。
    %PROCESSOR_REVISION% 系統(tǒng) 返回處理器的版本號。
    %PROMPT% 本地 返回當(dāng)前解釋程序的命令提示符設(shè)置。由 Cmd.exe 生成。
    %RANDOM% 系統(tǒng) 返回 0 到 32767 之間的任意十進制數(shù)字。由 Cmd.exe 生成。
    %SYSTEMDRIVE% 系統(tǒng) 返回包含 Windows server operating system 根目錄(即系統(tǒng)根目錄)驅(qū)動器。
    %SYSTEMROOT% 系統(tǒng) 返回 Windows server operating system 根目錄的位置。
    %TEMP% 和 %TMP% 系統(tǒng)和用戶 返回對當(dāng)前登錄用戶可用的應(yīng)用程序所使用的默認臨時目錄。
    有些應(yīng)用程序需要 TEMP,而其他應(yīng)用程序則需要 TMP。
    %TIME% 系統(tǒng) 返回當(dāng)前時間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。有關(guān)
    time 命令的詳細信息,請參閱 Time。
    %USERDOMAIN% 本地 返回包含用戶帳戶的域的名稱。
    %USERNAME% 本地 返回當(dāng)前登錄的用戶的名稱。
    %USERPROFILE% 本地 返回當(dāng)前用戶的配置文件的位置。
    %WINDIR% 系統(tǒng) 返回操作系統(tǒng)目錄的位置。
    這么多系統(tǒng)變量,我們?nèi)绾沃浪闹凳鞘裁茨?
    在CMD里輸入 echo %WINDIR%
    windir變量名,不是隨便亂輸?shù)?
    這樣就能顯示一個變量的值了!
    舉個實際例子,比如我們要復(fù)制文件到當(dāng)前帳號的啟動目錄里就可以這樣
    copy d:/1.bat "%USERPROFILE%/「開始」菜單/程序/啟動/"
    %USERNAME% 本地 返回當(dāng)前登錄的用戶的名稱。 注意有空格的目錄要用引號引起來
    另外還有一些系統(tǒng)變量,他們是代表一個意思,或者一個操作!
    他們分別是%0 %1 %2 %3 %4 %5 ......一直到%9 還有一個%*
    %0 這個有點特殊,有幾層意思,先講%1-%9的意思.
    %1 返回批處理的第一個參數(shù)
    %2 返回批處理的第二個參數(shù)
    %3-%9依此推類
    反回批處理參數(shù)?到底怎么個返回法?
    我們看這個例子,把下面的代碼保存為test.BAT然后放到C盤下
    @echo off
    echo %1 %2 %3 %4
    echo %1
    echo %2
    echo %3
    echo %4
    進入CMD,輸入cd c:/
    然后輸入 test.bat 我是第一個參數(shù) 我是第二個參數(shù) 我是第三個參數(shù) 我是第四個參數(shù)
    注意中間的空額,我們會看到這樣的結(jié)果:
    我是第一個參數(shù) 我是第二個參數(shù) 我是第三個參數(shù) 我是第四個參數(shù)
    我是第一個參數(shù)
    我是第二個參數(shù)
    我是第三個參數(shù)
    我是第四個參數(shù)
    對比下代碼,%1就是我是第一個參數(shù) %2就是我是第二個參數(shù)
    怎么樣理解了吧!
    這些%1和%9可以讓批處理也能帶參數(shù)運行,大大提高批處理功能!
    還有一個%* 他是什么呢?他的作用不是很大,只是返回參數(shù)而已,不過他是一次返回全部參數(shù)
    的值,不用在輸入%1 %2來確定一個個的
    例子
    @echo off
    echo %*
    同樣保存為test.bat 放到C盤
    進入CMD,輸入cd c:/
    然后輸入 test.bat 我是第一個參數(shù) 我是第二個參數(shù) 我是第三個參數(shù) 我是第四個參數(shù)
    可以看到他一次把全部參數(shù)都顯示出來了
    @echo off
    for %%i in (%*) do echo %%i
    做一個循環(huán),也是將%1-%9的參數(shù)全部顯示出來
    好現(xiàn)在開始講那個比較特殊的%0
    %0 這個不是返回參數(shù)的值了,他有兩層意思!
    第一層意思:返回批處理所在絕對路徑
    例子:
    @echo off
    echo %0
    pause
    保存為test.BAT放在桌面運行,會顯示如下結(jié)果
    "C:/Documents and Settings/Administrator/桌面/test.bat"
    他把當(dāng)前批處理執(zhí)行的所在路經(jīng)打印出來了,這就是返回批處理所在絕對路徑的意思
    第二層意思:無限循環(huán)執(zhí)行BAT
    例子:
    @echo off
    net user
    %0
    保存為BAT執(zhí)行,他就會無限循環(huán)執(zhí)行net user這條命令,直到你手動停止.
    以上就是批處理中的一些系統(tǒng)變量,另外還有一些變量,他們也表示一些功能,
    FOR命令中的那些就是,FOR變量已經(jīng)說過,就不講了.
    現(xiàn)在說自定義變量
    故名思意,自定義變量就是由我們來給他賦予值的變量
    要使用自定義變量就得使用set命令了,看例子.
    @echo off
    set var=我是值
    echo %var%
    pause
    保存為BAT執(zhí)行,我們會看到CMD里返回一個 "我是值"
    var為變量名,=號右變的是要給變量的值
    這就是最簡單的一種設(shè)置變量的方法了
    如果我們想讓用戶手工輸入變量的值,而不是在代碼里指定,可以用用set命令的/p參數(shù)
    例子:
    代碼如下:
    @echo off
    set /p var=請輸入變量的值
    echo %var%
    pause
    var變量名 =號右邊的是提示語,不是變量的值
    變量的值由我們運行后自己用鍵盤輸入!