欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows?bat腳本基礎(chǔ)指令詳解

 更新時(shí)間:2022年11月03日 09:34:42   作者:qq_34981  
這篇文章主要介紹了windows?bat腳本學(xué)習(xí)基礎(chǔ)指令詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.pause

暫停批處理的執(zhí)行并在屏幕上顯示"請(qǐng)按任意鍵繼續(xù)..."

例如:

改腳本執(zhí)行結(jié)果為:

2.echo

顯示指令,會(huì)把需要顯示的內(nèi)容展示出來。

例如:

 結(jié)果為:

3.echo off

在此語句后所有運(yùn)行的命令都不顯示命令行本身,但是本身的指令是會(huì)顯示出來的。

例如:

 結(jié)果為:

4.@

不顯示本行命令行

例如:

結(jié)果為:

5.call

調(diào)用另一個(gè)批處理文件(如果不用call而直接調(diào)用別的批處理文件,那么執(zhí)行完那個(gè)批處理文件后將無法返回當(dāng)前文件并執(zhí)行當(dāng)前文件的后續(xù)命令)

創(chuàng)建另一個(gè)腳本test2.bat作為測(cè)試

 分情況,

第一種,2號(hào)腳本和1號(hào)腳本在同一個(gè)目錄下

結(jié)果為:

第二種,2號(hào)腳本和1號(hào)腳本不在同一個(gè)目錄,并且2號(hào)腳本目錄包含中文路徑。

結(jié)果報(bào)錯(cuò):

這是因?yàn)橹形穆窂较到y(tǒng)默認(rèn)識(shí)別不了,可以通過軟件轉(zhuǎn)編碼來完成。這里以notepad++為例。

轉(zhuǎn)碼后保存,再次執(zhí)行1號(hào)腳本

結(jié)果為:

 第三種,2號(hào)路徑中包含了空格

 

修改腳本

結(jié)果:

 6.start

啟動(dòng)單獨(dú)的“命令提示符”窗口來運(yùn)行指定程序或命令。該命令包含有參數(shù),如下:

"title" 指定在“命令提示符”窗口標(biāo)題欄中顯示的標(biāo)題。

/dpatch 指定啟動(dòng)目錄。

/i 將 Cmd.exe 啟動(dòng)環(huán)境傳送到新的“命令提示符”窗口。

/min 啟動(dòng)新的最小化窗口。

/max 啟動(dòng)新的最大化窗口。

/separate 在單獨(dú)的內(nèi)存空間啟動(dòng) 16 位程序。

/shared 在共享的內(nèi)存空間啟動(dòng) 16 位程序。

/low 以空閑優(yōu)先級(jí)啟動(dòng)應(yīng)用程序。

/normal 以一般優(yōu)先級(jí)啟動(dòng)應(yīng)用程序。

/high 以高優(yōu)先級(jí)啟動(dòng)應(yīng)用程序。

/realtime 以實(shí)時(shí)優(yōu)先級(jí)啟動(dòng)應(yīng)用程序。

/abovenormal 以超出常規(guī)優(yōu)先級(jí)的方式啟動(dòng)應(yīng)用程序。

/belownormal 以低出常規(guī)優(yōu)先級(jí)的方式啟動(dòng)應(yīng)用程序。

/wait 啟動(dòng)應(yīng)用程序,并等待其結(jié)束。

/b 啟動(dòng)應(yīng)用程序時(shí)不必打開新的“命令提示符”窗口。除非應(yīng)用程序啟用 CTRL+C,否則將忽略 CTRL+C 操作。使用 CTRL+BREAK 中斷應(yīng)用程序。

如果不加參數(shù),則只開啟新的窗口來執(zhí)行命令。

例如:

結(jié)果:

如果需要修改新的窗口標(biāo)題,則使用參數(shù)"標(biāo)題"

例如:

結(jié)果

 如果2號(hào)腳本路徑包含空格,則路徑需要加"路徑"

例如

結(jié)果

 7.%0-%9

 %0是指批處理文件的本身,%1-%9是傳入的參數(shù)。這個(gè)參數(shù)是從批處理外傳入的。

例如:

直接打開腳本顯示:

在命令行輸入:

輸出結(jié)果為

 這里再補(bǔ)充一下擴(kuò)展知識(shí)。

MDK 符號(hào)字解釋

KEY        例子                                                                描述

%            PROJECT1.UVPROJX                                  帶擴(kuò)展名的文件名
#            C:\MYPROJECT\PROJECT1.UVPROJX       帶擴(kuò)展名的完整路徑和文件名
@           PROJECT1                                                     沒有擴(kuò)展名或路徑說明的文件名
$            C:\MYPROJECT\                                            用反斜杠擴(kuò)展的文件路徑名。
!            .\SRC\TEST.C                                    具有當(dāng)前文件夾擴(kuò)展名和相對(duì)路徑規(guī)范的文件名
~ 1        123                                                                   當(dāng)前光標(biāo)位置的行號(hào)
^ 1         51                                                                    當(dāng)前光標(biāo)位置的列號(hào)

$D            從設(shè)備數(shù)據(jù)庫中選擇的設(shè)備名稱。
E            編輯器文件名目前在焦點(diǎn)。
F            根據(jù)上下文,這個(gè)文件代碼返回:在窗口Project中選擇的文件。 當(dāng)前活動(dòng)的編輯器文件。 當(dāng)前由構(gòu)建過程翻譯的文件.
H            應(yīng)用程序HEX文件名 (PROJECT1.H86).
$J           編譯器的絕對(duì)路徑。 編譯器基本文件夾列在項(xiàng)目-管理-項(xiàng)目項(xiàng)目-文件夾/擴(kuò)展- ARMCC文件夾。例如我自己的該參數(shù)的輸出結(jié)果就是D:\kei5\ARM\ARMCC\include
K            開發(fā)工具鏈的絕對(duì)根文件夾,不管使用的關(guān)鍵代碼是什么
L            鏈接器輸出文件。 通常用于調(diào)試的可執(zhí)行文件(PROJECT1).
$M         CPU mask revision number.
P            當(dāng)前項(xiàng)目文件名。
$S            當(dāng)前激活的設(shè)備族包的安裝文件夾.
X            視覺可執(zhí)行程序文件(…\UV4\UV4. exe)。 適用于Key Code %, #, and @.
$X            目標(biāo)-目標(biāo)- XTAL選項(xiàng)中指定的以MHz為單位的XTAL時(shí)鐘頻率。
^X            XTAL時(shí)鐘頻率在千赫指定的目標(biāo)-目標(biāo)- XTAL選項(xiàng)。
Y            預(yù)處理器符號(hào)文件co-arm_<target_name>.h為C文件類型定義。 適用于關(guān)鍵代碼#。
Z            預(yù)處理器符號(hào)文件co-arm_<target_name>.hpp為c++文件類型定義。 適用于關(guān)鍵代碼#。

$L           $表示應(yīng)用的是路徑,L表示Output->Name of Executable中設(shè)置的名字,即工程的輸出名(包含路徑)。

@L        @表示引用的是文件名,@L引用工程的輸出名字。換句話說就是使用Keil,在Output中設(shè)置的文件輸出名字。

#L        #表示引用的是本身,#L即工程的輸出文件。keil的輸出文件是.axf文件。如我自己的該參數(shù)的輸出結(jié)果就是D:\myproject\project\Objects\app.axf

實(shí)際fromelf.exe應(yīng)該也要使用相對(duì)路徑,所以命令可以改成:

$KARM\ARMCC\bin\fromelf.exe --bin -o "$L@L.bin" "#L"

$K        表示的是MDK的安裝路徑。

 10.choice

使用此命令可以讓用戶輸入一個(gè)字符,從而運(yùn)行不同的命令。

輸入/?指令查看指令詳情

/c 添加自己的選項(xiàng)

/n 不顯示提示文本

需要注意的是/t和/d需要配合使用。/t倒計(jì)時(shí)幾秒。/d倒計(jì)時(shí)結(jié)束后的默認(rèn)選項(xiàng)

例如

10秒倒計(jì)時(shí)結(jié)束后顯示

11.type

顯示文本文件的內(nèi)容

先創(chuàng)建一個(gè)測(cè)試文本test.txt

 調(diào)用腳本來顯示

結(jié)果為:

type 文件名 | more

 有事顯示的內(nèi)容過多,想要一行一行顯示時(shí)調(diào)用。

最下行會(huì)顯示more,任意鍵會(huì)再顯示一行

type 文件名 | find "關(guān)鍵字"

只輸出需要查找的關(guān)鍵字

 結(jié)果為

12.set

該指令用來設(shè)置變量

 不帶參數(shù)為設(shè)置變量。

例如

@echo off
echo hello world
set value=123456
echo 輸入的值為%value%
pause

執(zhí)行結(jié)果為:

 set /p 變量=等待輸入的提示字

例如

@echo off
echo hello world
set /p value=請(qǐng)輸入值
echo 輸入的值為%value%
pause

結(jié)果:

 set /a 變量=公式

例如:

@echo off
echo hello world
set /a value=1+2+3
echo 結(jié)果:%value%
pause

結(jié)果:

 13.IF

用于判斷

 if exist 文件名

查看該文件是否存在

例如

@echo off
echo hello world
if exist test1.txt (
echo this file exist
) else (
echo this file not exist)
pause

結(jié)果為

可以寫到一行,但是一定要注意空格,否則語法為失敗。

此外,如果換行,必須"括號(hào)"為行最后一個(gè)字符。否則無法執(zhí)行。

 if "字符串"=="字符串"

 判斷兩個(gè)字符串是否相等。

例如

@echo off
echo hello world
if "123"=="134" (
echo equality
) else (
echo not equality)
pause

結(jié)果:

 if %變量%

可以通過與set /p指令配合來完成輸入數(shù)字的判斷。

例如:

@echo off
echo 1.輸出數(shù)字
echo 2.輸出字符
echo 3.輸出漢字
set /p value=請(qǐng)輸入
if %value%==1 (
echo 數(shù)字
) else if %value%==2 (
echo 字符
) else if %value%==3 (
echo 漢字) else (
echo 輸入錯(cuò)誤)
pause

結(jié)果:

 可以通過與choice /c指令配合來完成輸入數(shù)字的判斷。

 例如:

@echo off
echo 1.輸出數(shù)字
echo 2.輸出字符
echo 3.輸出漢字
choice /c 123
if %errorlevel%==1 echo 數(shù)字
if %errorlevel%==2 echo 字符
if %errorlevel%==3 echo 漢字
pause?

結(jié)果:

字符串對(duì)比

@echo off
echo hello world
set /p value=請(qǐng)輸入字符串
if "%value%" == "true" (echo success
)else (echo false)
 
pause

結(jié)果如下:

 /i 參數(shù):不區(qū)分大小寫,更改代碼

@echo off
echo hello world
set /p value=請(qǐng)輸入字符串
if /i "%value%" == "true" (echo success
)else (echo false)
pause

 結(jié)果:

14.for

 循環(huán)指令。這里需要了解兩個(gè)關(guān)鍵字%i、%%i

%i這個(gè)關(guān)鍵字不能在bat中使用。只能再CMD命令下的for中使用。

例如在cmd中:for %i in(command1) do command2

%%i是在bat的for中使用的指令。

例如for %%i in(command1) do command2

for %%i in(command1) do command2是for的語法使用規(guī)則。

1.for、in和do是for語句的關(guān)鍵字,它們?nèi)齻€(gè)缺一不可;

2.%%I是for語句中對(duì)形式變量的引用,即使變量l在do后的語句中沒有參與語句的執(zhí)行,也是必須出現(xiàn)的;

3.in之后,do之前的括號(hào)不能省略;

4.command1表示字符串或變量,command2表示字符串、變量或命令語句;

意思為:循環(huán)調(diào)用command1中的元素作為參數(shù),來參與command2的執(zhí)行

此外需要注意幾點(diǎn)

1.for語句的形式變量I,可以換成26個(gè)字母中的任意一個(gè),這些字母會(huì)區(qū)分大小寫,也就是說,%%I和%%i會(huì)被認(rèn)為不是同一個(gè)變量;形式變量I還可以換成其他的字符,但是,為了不與批處理中的%0~%9這10個(gè)形式變量發(fā)生沖突,請(qǐng)不要隨意把%%I替換為%%0~%%9中的任意一個(gè);

2.in和do之間的command1表示的字符串或變量可以是一個(gè),也可以是多個(gè),每一個(gè)字符串或變量,我們稱之為一個(gè)元素,每個(gè)元素之間,用空格鍵、跳格鍵、逗號(hào)、分號(hào)或等號(hào)分隔;

3.for語句依次提取command1中的每一個(gè)元素,把它的值賦予形式變量I,帶到do后的command2中參與命令的執(zhí)行;并且每次只提取一個(gè)元素,然后執(zhí)行一次do后的命令語句,而無論這個(gè)元素是否被帶到command2中參與了command2的運(yùn)行;當(dāng)執(zhí)行完一次do后的語句之后,再提取command1中的下一個(gè)元素,再執(zhí)行一次command2,如此循環(huán),直到command1中的所有元素都已經(jīng)被提取完畢,該for語句才宣告執(zhí)行結(jié)束。

例如:

@echo off
echo hello world
for %%a in (ele1 ele2 ele3) do (echo %%a)
pause

結(jié)果:

for /l ....

該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。

例如:

@echo off
for /l %%i in (1,1,20) do (echo %%i)
pause

結(jié)果:

高級(jí)用法

搜索當(dāng)前目錄下有哪些文件?

for %%i in (*.*) do echo "%%i"

搜索當(dāng)前目錄下所有的文本文件?

for %%i in (*.txt) do echo "%%i"

15:goto

跳轉(zhuǎn)執(zhí)行標(biāo)簽

在Bat中有標(biāo)簽一詞,跟C語言的函數(shù)類似。并且標(biāo)簽必須單獨(dú)一行,并且以冒號(hào)開頭。

這里做一個(gè)死循環(huán),如下:

@echo off
:loop
echo 1.輸出數(shù)字
echo 2.輸出字符
echo 3.輸出漢字
set /p value=請(qǐng)輸入
if %value%==1 (
echo 數(shù)字
) else if %value%==2 (
echo 字符
) else if %value%==3 (
echo 漢字) else (
echo 輸入錯(cuò)誤)
goto loop
pause

結(jié)果

這樣在每次輸入結(jié)果后,就會(huì)回到起始,重新執(zhí)行。

16.符號(hào)(&、&&、||、|、>、>>)

 順序執(zhí)行多條命令,而不管命令是否執(zhí)行成功

&& 順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令

|| 順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令(即:只有前面命令執(zhí)行錯(cuò)誤時(shí)才執(zhí)行后面命令)

|  管道命令 前一個(gè)命令的執(zhí)行結(jié)果輸出到后一個(gè)命令 如:help | more

清除文件中原有的內(nèi)容后再寫入

>>  追加內(nèi)容到文件末尾,而不會(huì)清除原有的內(nèi)容主要將本來顯示在屏幕上的內(nèi)容輸出到指定文件中指定文件如果不存在,則自動(dòng)生成該文件

17.延遲環(huán)境變量擴(kuò)展

        CMD在解釋我們的命令的時(shí)候,首先會(huì)讀取命令行一條完整的命令。然后對(duì)其進(jìn)行一些命令格式的匹配操作,看你所輸入的命令格式是不是符合他的要求。如果我們要在我們的命令中引用一些變量,那么我們?nèi)绾巫孋MD在解釋我們的命令時(shí)。能識(shí)別出這個(gè)變量呢?這時(shí)我們就可以在變量名字兩邊加一個(gè)%號(hào), 如%name%。當(dāng)CMD在對(duì)讀取我們的整行命令進(jìn)行格式匹配的時(shí)候,就會(huì)發(fā)現(xiàn)name這個(gè)字符兩邊加了%號(hào),就不會(huì)把他當(dāng)作普通字符處理,而是會(huì)把他當(dāng) 作一個(gè)變量處理。變量名叫name。然后CMD就會(huì)找到變量名對(duì)應(yīng)的值,用變量名的值替換掉這個(gè)變量名字(name),(如果變量名不存在值,就返回空 值)。再將這個(gè)替換好并且匹配的命令執(zhí)行。這個(gè)替換值的過程就叫做變量擴(kuò)展。說白了就是把變量的名字,用他的值給替換掉后執(zhí)行。也就是批處理如何識(shí)別一 個(gè)變量的過程.。

例如:

set var=test

echo %var%

 此時(shí)編譯器再讀取的時(shí)候直接將%var%替換為test。所以顯示就顯示test。

在看下邊這個(gè)

for /l %%i in (1,1,5) do (
set var=%%i
echo %var%)

這個(gè)在預(yù)編譯的時(shí)候?qū)?var%替換成%%i,但是%%i又不認(rèn)識(shí)是什么,所以程序在運(yùn)行的時(shí)候就會(huì)出錯(cuò)。運(yùn)行結(jié)果如下:

此時(shí)就需要使用延遲環(huán)境變量擴(kuò)展,即每條指令在執(zhí)行之前才將變量進(jìn)行替換,以保證對(duì)變量的任何修改都可以實(shí)時(shí)生效.。

使用setloacl ENABLEDELAYEDEXPANSION這個(gè)命令來啟用\"延遲環(huán)境變量擴(kuò)展\",遇到的變量需要用!變量!進(jìn)行替換。那上邊異常的代碼可以修改為:

setlocal ENABLEDELAYEDEXPANSION
for /l %%i in (1,1,5) do (
set var=%%i
echo !var!)

執(zhí)行的結(jié)果為:

18.exit

退出當(dāng)前DOS控制臺(tái)。

例如:

echo hello world
for /l %%a in (0,0,0) do (
set /p input=請(qǐng)輸入:
echo !input!
if !input!==pass (exit))
pause

結(jié)果:

只有輸入pass,程序才會(huì)退出。

到此這篇關(guān)于windows bat腳本學(xué)習(xí)一(基礎(chǔ)指令)的文章就介紹到這了,更多相關(guān)windows bat腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論