07 CMD set命令詳解

2021-06-16 11:53:50 字數 4149 閱讀 3069

set命令詳解

作用:顯示、設定或刪除 cmd.exe  環境變數。

格式:set [variable]=[string] 

variable    指定環境變數名。 

string      指定要指派給變數的一系列字串。    

說明:1) set          : 顯示所有環境變數

2) set var=     : 清楚var的值

3) %var%        : 引用變數的值

舉例:d:\cmd\04>set myvar=123

d:\cmd\04>echo %myvar%

123 

格式:set /p variable=[promptstring] 

variable, 變數名

promptstring, 提示資訊

說明:提供乙個互動介面,讓使用者自己輸入變數的值,

舉例:d:\cmd\04>set /p var=input value: & @echo %var%

input value: 123

123格式:

set /a expression 

說明:/a 命令列開關指定等號右邊的字串為被評估的數字表示式。

該表示式評估器很簡單,並以遞減的優先權順序支援下列操作: 

()                   分組 

! ~ -                一元運算子 

* / %                算數運算子 

+ -                  算數運算子 

<< >>                二進位制邏輯移位 

&                    二進位制按位「與」 

^                    二進位制按位「異」 

|                    二進位制按位「或」 

= *= /= %= += -=     算數賦值 

&= ^= |= <<= >>=     二進位制運算賦值 

,                    表示式分隔符

十進位制數字 : 不帶字首, 如 98

八進位制數字 : 字首 0 (零), 如 0123

十六進製制數字:字首 0x , 0xff

舉例:1, 

d:\cmd\04>set num=123

d:\cmd\04>echo %num%

123d:\cmd\04>set /a num=4%num%

4123

d:\cmd\04>set /a num=%num%-23

4100

2, 計算器功能

2.bat =>

@echo off

set /p expression=輸入計算表示式:

set /a var=%expression%

echo %expression%=%var%

pause

ms-dos =>

d:\cmd\04>2.bat

輸入計算表示式:1+2+3/2

1+2+3/2=4    

表示式: 

3, 逗號

d:\cmd\04>set /a a=1+1,b=2+2

4d:\cmd\04>echo %a%, %b%

2, 4

4, 直接在變數上運算

d:\cmd\04>set a=1

d:\cmd\04>set /a a+=10

115, 邏輯運算(需要將運算子用雙引號包裹,或使用轉義符^)

set /a var= 1 "&" 1     這樣結果就顯示出來了,其他邏輯或取餘操作符用法 

set /a var= 1 "+" 1     異運算 

set /a var= 1 "%" 1     取模運算 

set /a var= 3 "<<" 2    左移位運算, 3 的二進位制為 11,左移 2 位為 1100,換成十進位制就是 12,自行驗證 

set /a var= 4 ">>" 2    右移位運算,4 的二進位制為 100 ,右移動 2 位為 1,結果為 1

6, 2的n次方

3.bat => 變數無需用 "%%" 包裹

@echo off

set /p n=請輸入2的冪:

set /a num=1 "<<" n

echo %num%

pause

1、字串替換  

格式:%variable:targetstr=replacementstr%

variable      : 變數名

targetstr     : 需要替換的字串

replacementstr: 替換後的內容

舉例:d:\cmd\04>set a=www.  baidu.com

d:\cmd\04>set var=%a: =%        // 去掉空格

d:\cmd\04>set var=%a:.=#%       // 將"."換成"#"

2, 字串擷取

格式:%variable:~[ start [, length] ]%

start   : 從第幾個字元開始, 預設為0

正數(+p), 總左邊數p個

負數(-p), 從右邊數p個

length  : 擷取多少個, 預設則取到末尾

正數(+n), n個

負數(-n), 總數-n  個

舉例:d:\cmd\04>echo %b%

0123456789

d:\cmd\04>echo %b:~1,4%

1234

d:\cmd\04>echo %b:~-3%

789d:\cmd\04>echo %b:~0,-3%

0123456    

總結:a=bbs.wuyou.com%a:~1,2%   =「bs」    

偏移量 1,從第二位開始向右取 2 位 

%a:~-3%    =「com 」   

偏移量負 3,即倒數 3 位(也可理解為留下右邊 3 位),右取全部 

%a:~3%     =「.wuyou.com 」  

偏移量 3(也可理解為去掉左邊 3 位),右取全部 

%a:~0,-3%    =「bbs.wuyou.」  

偏移量 0,右取長度至負 3,即倒數 3 位 

%a:~2,-3%    =「s.wuyou.」   

偏移量2,右取長度至負 3,即倒數 3 位

思考: 輸入任意字串, 求其長度

@echo off

set /p targetstr=請輸入任意長度的字串:

echo 您輸入的字串為: "%targetstr%"

:: 引數1, 傳入的字串, 如有空格, 請用雙引號 括起來

:: 引數2, 返回變數的名稱

call :getstringlen "%targetstr%" len

echo "%targetstr%" 的長度為: %len%

:: 引數1, 傳入的字串, 如有空格, 請用雙引號 括起來

:: 引數2, 返回變數的名稱

:getstringlen

set thestring=%~1

set count=0

:continue

set /a count+=1 

set thestring=%thestring:~0,-1%

rem 如果thestring未定義或者值為空

if defined thestring goto continue

if not "%2"=="" set %2=%count%

goto :eof

go標準命令詳解0 7 go test

go test命令用於對go語言編寫的程式進行測試。這種測試是以 包為單位的。當然,這還需要測試原始碼檔案的幫助。關於怎樣編寫並寫好go程式測試 我們會在本章的第二節加以詳述。在這裡,我們只討論怎樣使用命令啟動測試。go test命令會自動測試每乙個指定的 包。當然,前提是指定的 包中存在測試原始碼...

07 詳解scala函式程式設計

在main函式體外面的原始碼 def test str string unit def main args array string unit 在main函式體裡面的原始碼 def main args array string unit test 張三 def test unit def test1...

07 Pattern Note 命令模式

20160109 今天開始看命令模式,主要從概念和實現來深入理解該模式 通常來說,行為請求者 與 行為實現者 是緊耦合的。但在某些場合,比如要對行為進行 記錄 撤銷 重做 事務 等處理,這種無法抵禦變化的緊耦合是不合適的。在這些情況下,將 行為請求者 與 行為實現者 解耦,實現二者之間的松耦合就至關...