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

2022-03-22 08:26:02 字數 3872 閱讀 9518

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

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

系統變數:

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

不需要我們來給他賦值,

%allusersprofile%本地 返回「所有使用者」配置檔案程式儲存資料的位置。

%cd%本地 返回當前目錄字串。

%cmdcmdline%本地 返回用來啟動當前的 cmd.exe 的準確命令行。

%cmdextversion%系統 返回當前的「命令處理程式擴充套件」的版本號。

%computername%  系統 返回計算機的名稱。

%comspec%  系統 返回命令列直譯器可執行程式的準確路徑。

%date%  系統 返回當前日期。使用與 date/t 命令相同的格式。由 cmd.exe 生成。有關

date 命令的詳細資訊,請參閱 date。

%errorlevel%  系統 返回上一條命令的錯誤**。通常用非零值表示錯誤。

%homedrive%  系統 返回連線到使用者主目錄的本地工作站驅動器號。基於主目錄值而設定。用

戶主目錄是在「本地使用者和組」中指定的。

%homepath%  系統 返回使用者主目錄的完整路徑。基於主目錄值而設定。使用者主目錄是在「本

地使用者和組」中指定的。

%homeshare%  系統 返回使用者的共享主目錄的網路路徑。基於主目錄值而設定。使用者主目錄是

在「本地使用者和組」中指定的。

%logonserver%  本地 返回驗證當前登入會話的域控制器的名稱。

%number_of_processors%  系統 指定安裝在計算機上的處理器的數目。

%os%  系統 返回作業系統名稱。windows2000 顯示其作業系統為 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變數名  =號右邊的是提示語,不是變數的值

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

批處理中的變數,我把他分為兩類,分別為 系統變數 和 自定義變數 系統變數 他們的值由系統將其根據事先定義的條件自動賦值,也就是這些變數系統已經給他們定義了值,不需要我們來給他賦值,allusersprofile 本地 返回 所有使用者 配置檔案程式儲存資料的位置。cd 本地 返回當前目錄字串。cm...

STM32F4教程 第四節 SysTick之延時

cease to struggle and you cease to live.thomas carlyle 生命不止,奮鬥不息。卡萊爾 systick暫存器 一共4個systick暫存器 systick 控制和狀態暫存器 ctrl systick 重裝載數值暫存器 load systick 當前值...

C 教程之自己動手寫對映第四節 封裝刪除

一 動機 我們在借助於 sqlhelper刪除資料的時候,一般的 如下 1 2 3 建立人 李林峰4 5 時 間 2012 07 266 7 描 述 借助於sqlhelper刪除表的資料8 9 1011 using system.data 12using csharp.core 1314 names...