批處理中的變數

2021-09-06 19:03:23 字數 2034 閱讀 4015

set 功能一覽

[設定變數]

格式:set 變數名=變數值

詳細:被設定的變數以%變數名%引用

[取消變數]

格式:set 變數名=

詳細:取消後的變數若被引用%變數名%將為空

[展示變數]

格式:set 變數名

詳細:展示以變數名開頭的所有變數的值

[列出所有可用的變數]

格式:set

[計算器]

格式:set /a 表示式

示例:set /a 1+2*3 輸出 7

!注意!

set不能用在復合語句裡面比如if 1==1 set a=2或者for %%i in (a) do set a=2

預定義的變數

下面是些已經被底層定義好可以直接使用的變數:不會出現在 set 顯示的變數列表中

%cd%- 擴充套件到當前目錄字串。

%date%- 用跟 date 命令同樣的格式擴充套件到當前日期。

%time%- 用跟 time 命令同樣的格式擴充套件到當前時間。

%random%- 擴充套件到 0 和 32767 之間的任意十進位制數字。

%errorlevel%- 擴充套件到當前 errorlevel 數值。

%cmdextversion%- 擴充套件到當前命令處理器副檔名版本號。

%cmdcmdline%- 擴充套件到呼叫命令處理器的原始命令列。

%0bat的完整路徑名如"c:\windows\system32\***.bat"

%1bat引數1依次類推%2引數2...

%path%- 當前的環境變數。以分號隔開的路徑列表,路徑可包含空格,可以以'\'結尾, 可以以雙引號包圍之。

%username%- 當前使用者名稱

%userprofile%- 當前使用者主目錄

獲取當前指令碼所在路徑:echo%~dp0(需要寫在指令碼中,執行指令碼時顯示)

擴充套件變數

@ 與%i相關的變數(bat引數或者for迴圈的%i)

假設檔案為c:\documents and settings\jinsun\桌面\parsesinglepkgs.bat

%0c:\documents and settings\jinsun\桌面\parsesinglepkgs.bat

%~dp0c:\documents and settings\jinsun\桌面\

%cd%c:\documents and settings\jinsun\桌面

%~nx0parsesinglepkgs.bat

%~n0parsesinglepkgs

%~x0.bat

@ 與%var%相關的變數

%var:str1=str2%會將var中的str1替換為str2(str2如果為空則可以達到刪除的效果,str1前可以加*,變數%abc:*b=%是c)

%var:~0,-2%會提取var 變數的所有字元,除了最後兩個

%var:~-2%會提取var 變數的最後兩個

%

powershell環境變數:

批處理中處理變數延遲

rem 比較兩種異同 體會變數延遲 echo off set a 4 set a 5 echo a pause setlocal enabledelayedexpansion set c 4 set c 5 echo c pause批處理執行機制 批處理讀取命令按行讀取,在處理之前要完成必要的預處理...

bat 批處理變數

echo off setlocal enabledelayedexpansion d rem 更改d bat為當前目錄 cd d bat rem 變數使用 set a a 1 2 echo a echo cd echo date set p var 請輸入變數的值 echo var rem find...

批處理中的

如果是 a 這種形式 就是變數的引用,echo off set a 123 rem定義乙個變數a 賦值為123 echo a rem顯示出變數a的值 如果不加 系統會把a當字元處理了,不會當成變數的 i 這種變數是for 語句裡面 特有的變數 還有一種是外部變數,接受外部引數的格式是 1 9 共9個...