人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

批處理命令call、start、goto的使用

發(fā)布日期:2022-07-15 19:28 | 文章來源:gibhub

1、call命令

CALL從一個(gè)批處理程序調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序。call命令主要有2種用法,一種是調(diào)用其他批處理程序(*.bat,*.exe,*.cmd,*.COM),目前常用的是*.exe文件和*.bat文件;另一種是CALL :label arguments

C:\Users\Administrator>help call
從批處理程序調(diào)用另一個(gè)批處理程序。
 
CALL [drive:][path]filename [batch-parameters]
 
  batch-parameters指定批處理程序所需的命令行信息。
 
如果命令擴(kuò)展被啟用,CALL 會(huì)如下改變:
 
CALL 命令現(xiàn)在將卷標(biāo)當(dāng)作 CALL 的目標(biāo)接受。語(yǔ)法是:
 
 CALL:label arguments
 
一個(gè)新的批文件上下文由指定的參數(shù)所創(chuàng)建,控制在卷標(biāo)被指定后傳遞到語(yǔ)句。您必須通過達(dá)到批腳本文件末兩次來 "exit" 兩次。第一次讀到文件末時(shí),控制會(huì)回到 CALL 語(yǔ)句的緊后面。第二次會(huì)退出批腳本。鍵入GOTO /?,參看 GOTO :EOF 擴(kuò)展的描述,此描述允許您從一個(gè)批腳本返回。
 
另外,批腳本文本參數(shù)參照(%0、%1、等等)已如下改變:
 
 
  批腳本里的 %* 指出所有的參數(shù)(如 %1 %2 %3 %4 %5 ...)
  批參數(shù)(%n)的替代已被增強(qiáng)。您可以使用以下語(yǔ)法:
 
%~1- 刪除引號(hào)("),擴(kuò)展 %1
%~f1  - 將 %1 擴(kuò)展到一個(gè)完全合格的路徑名
%~d1  - 僅將 %1 擴(kuò)展到一個(gè)驅(qū)動(dòng)器號(hào)
%~p1  - 僅將 %1 擴(kuò)展到一個(gè)路徑
%~n1  - 僅將 %1 擴(kuò)展到一個(gè)文件名
%~x1  - 僅將 %1 擴(kuò)展到一個(gè)文件擴(kuò)展名
%~s1  - 擴(kuò)展的路徑只含有短名
%~a1  - 將 %1 擴(kuò)展到文件屬性
%~t1  - 將 %1 擴(kuò)展到文件的日期/時(shí)間
%~z1  - 將 %1 擴(kuò)展到文件的大小
%~$PATH:1- 查找列在 PATH 環(huán)境變量的目錄,并將 %1
  擴(kuò)展到找到的第一個(gè)完全合格的名稱。如果
  環(huán)境變量名未被定義,或者沒有找到文件,
  此修改符會(huì)擴(kuò)展到空字符串
 可以組合修改符來取得多重結(jié)果:
  %~dp1 - 只將 %1 擴(kuò)展到驅(qū)動(dòng)器號(hào)和路徑
  %~nx1 - 只將 %1 擴(kuò)展到文件名和擴(kuò)展名
  %~dp$PATH:1 - 在列在 PATH 環(huán)境變量中的目錄里查找 %1,
 并擴(kuò)展到找到的第一個(gè)文件的驅(qū)動(dòng)器號(hào)和路徑。
  %~ftza1  - 將 %1 擴(kuò)展到類似 DIR 的輸出行。
 在上面的例子中,%1 和 PATH 可以被其他有效數(shù)值替換。
 %~ 語(yǔ)法被一個(gè)有效參數(shù)號(hào)碼終止。%~ 修定符不能跟 %* 使用

1.1調(diào)用批處理

命令格式CALL [drive:][path]filename [batch-parameters]

創(chuàng)建文件test.bat 調(diào)用文件call.bat

@echo off
set a=環(huán)境變量
call call.bat hi hello
pause
exit /b 0
::call.bat
echo %1
echo %2
echo %a%

運(yùn)行結(jié)果如下:

注意:

1、只在test.bat中使用命令@echo off,call.bat中也沒有回顯命令;

2、在test.bat中設(shè)置環(huán)境變量,call.bat中可使用該變量

1.2調(diào)用目標(biāo)標(biāo)簽

注意:

1、調(diào)用標(biāo)簽時(shí)需要“:”

2、調(diào)用標(biāo)簽后繼續(xù)處理后面命令

實(shí)例一

@echo off
call :interCall hi hello
echo 下一步
pause
exit /b 0
 
:intercall
echo %1
echo %2

運(yùn)行結(jié)果:

實(shí)例二

@echo off
call :interCall
echo 下一步
:intercall
echo hi
echo hello
PAUSE
exit /b 0
 

2、調(diào)用call 和不用call 的區(qū)別

1、使用call不終止父處理進(jìn)程,不用call 調(diào)用批處理后,父處理進(jìn)程終止,不再處理后續(xù)命令

rem test.bat
@echo off
set a=環(huán)境變量
call call.bat hi hello
echo 下一步
pause
exit /b 0
rem call.bat
echo %1
echo %2
echo %a%
pause

2.2去掉call call.bat hi hello中的call運(yùn)行結(jié)果如下:

3、goto 命令

幫助文檔如下

C:\Users\Administrator>help goto
將 cmd.exe 定向到批處理程序中帶標(biāo)簽的行。
 
GOTO label
 
  label指定批處理程序中用作標(biāo)簽的文字字符串。
 
標(biāo)簽必須單獨(dú)一行,并且以冒號(hào)打頭。如果命令擴(kuò)展被啟用,GOTO 會(huì)如下改變:
 
GOTO 命令現(xiàn)在接受目標(biāo)標(biāo)簽 :EOF,這個(gè)標(biāo)簽將控制轉(zhuǎn)移到當(dāng)前批腳本文件的結(jié)尾。不定義就退出批腳本文件,這是一個(gè)容易的辦法。有關(guān)能使該功能有用的 CALL 命令的擴(kuò)展描述,請(qǐng)鍵入CALL /?。

3.1 goto 后面不需要":",直接加label

3.2 goto 跳至指定label后,不會(huì)處理被跳過的命令語(yǔ)句

@echo off
goto interCall
echo 下一步
:intercall
echo hi
echo hello
PAUSE
exit /b 0

運(yùn)行結(jié)果:并沒有處理“echo 下一步”該語(yǔ)句

4、start類似于創(chuàng)建一個(gè)線程

C:\Users\Administrator>help start
啟動(dòng)一個(gè)單獨(dú)的窗口運(yùn)行指定的程序或命令。
 
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
[command/program] [parameters]
 
 "title"  在窗口標(biāo)題欄中顯示的標(biāo)題。
 path  啟動(dòng)目錄。
 B  啟動(dòng)應(yīng)用程序,但不創(chuàng)建新窗口。應(yīng)用程序已忽略 ^C 處理。
 除非應(yīng)用程序啟用 ^C 處理,否則 ^Break 是唯一可以中斷
 該應(yīng)用程序的方式。
 I  新的環(huán)境將是傳遞給 cmd.exe 的原始環(huán)境,而不是當(dāng)前環(huán)境。
 
 MIN以最小化方式啟動(dòng)窗口。
 MAX以最大化方式啟動(dòng)窗口。
 SEPARATE 在單獨(dú)的內(nèi)存空間中啟動(dòng) 16 位 Windows 程序。
 SHARED在共享內(nèi)存空間中啟動(dòng) 16 位 Windows 程序。
 LOW在 IDLE 優(yōu)先級(jí)類中啟動(dòng)應(yīng)用程序。
 NORMAL在 NORMAL 優(yōu)先級(jí)類中啟動(dòng)應(yīng)用程序。
 HIGH  在 HIGH 優(yōu)先級(jí)類中啟動(dòng)應(yīng)用程序。
 REALTIME 在 REALTIME 優(yōu)先級(jí)類中啟動(dòng)應(yīng)用程序。
 ABOVENORMAL 在 ABOVENORMAL 優(yōu)先級(jí)類中啟動(dòng)應(yīng)用程序。
 BELOWNORMAL 在 BELOWNORMAL 優(yōu)先級(jí)類中啟動(dòng)應(yīng)用程序。
 NODE  將首選非一致性內(nèi)存結(jié)構(gòu) (NUMA) 節(jié)點(diǎn)指定為十進(jìn)制整數(shù)。
 AFFINITY 將處理器關(guān)聯(lián)掩碼指定為十六進(jìn)制數(shù)字。進(jìn)程被限制在這些
 處理器上運(yùn)行。
 
 當(dāng) /AFFINITY 和 /NODE 結(jié)合時(shí),會(huì)對(duì)關(guān)聯(lián)掩碼進(jìn)行不同的解釋。
 指定關(guān)聯(lián)掩碼,正如 NUMA 節(jié)點(diǎn)的處理器掩碼正確移動(dòng)到零位
 起始位置一樣。進(jìn)程被限制在指定關(guān)聯(lián)掩碼和 NUMA 節(jié)點(diǎn)之間的
 那些通用處理器上運(yùn)行。如果沒有通用處理器,則進(jìn)程被限制在
 指定的 NUMA 節(jié)點(diǎn)上運(yùn)行。
 WAIT  啟動(dòng)應(yīng)用程序并等待它終止。
 command/program
 如果它是內(nèi)部 cmd 命令或批文件,則該命令處理器是使用
 cmd.exe 的 /K 開關(guān)運(yùn)行的。這表示運(yùn)行該命令之后,該窗口
 將仍然存在。
 
 如果它不是內(nèi)部 cmd 命令或批文件,則它就是一個(gè)程序,并將
 作為一個(gè)窗口化應(yīng)用程序或控制臺(tái)應(yīng)用程序運(yùn)行。
 
 parameters  這些是傳遞給 command/program 的參數(shù)。
 
注意: 在 64 位平臺(tái)上不支持 SEPARATE 和 SHARED 選項(xiàng)。
 
通過指定 /NODE,可按照利用 NUMA 系統(tǒng)中的內(nèi)存區(qū)域的方式創(chuàng)建進(jìn)程。例如,可以創(chuàng)建兩個(gè)完全通過共享內(nèi)存互相通信的進(jìn)程以共享相同的首選 NUMA 節(jié)點(diǎn),從而最大限度地減少內(nèi)存延遲。如有可能,它們即會(huì)分配來自相同 NUMA 節(jié)點(diǎn)的內(nèi)存,并且會(huì)在指定節(jié)點(diǎn)之外的處理器上自由運(yùn)行。
 
 啟動(dòng) /NODE 1 application1.exe
 啟動(dòng) /NODE 1 application2.exe
 
這兩個(gè)進(jìn)程可被進(jìn)一步限制在相同 NUMA 節(jié)點(diǎn)內(nèi)的指定處理器上運(yùn)行。在以下示例中, application1 在節(jié)點(diǎn)的兩個(gè)低順序處理器上運(yùn)行,而 application2在該節(jié)點(diǎn)的其后兩個(gè)處理器上運(yùn)行。該示例假定指定節(jié)點(diǎn)至少具有四個(gè)邏輯處理器。請(qǐng)注意,節(jié)點(diǎn)號(hào)可更改為該計(jì)算機(jī)的任何有效節(jié)點(diǎn)號(hào),而無(wú)需更改關(guān)聯(lián)掩碼。
 
 啟動(dòng) /NODE 1 /AFFINITY 0x3 application1.exe
 啟動(dòng) /NODE 1 /AFFINITY 0xc application2.exe
 
如果命令擴(kuò)展被啟用,通過命令行或 START 命令的外部命令調(diào)用會(huì)如下改變:
 
將文件名作為命令鍵入,非可執(zhí)行文件可以通過文件關(guān)聯(lián)調(diào)用。
 (例如,WORD.DOC 會(huì)調(diào)用跟 .DOC 文件擴(kuò)展名關(guān)聯(lián)的應(yīng)用程序)。
 關(guān)于如何從命令腳本內(nèi)部創(chuàng)建這些關(guān)聯(lián),請(qǐng)參閱 ASSOC 和FTYPE 命令。
 
執(zhí)行的應(yīng)用程序是 32-位 GUI 應(yīng)用程序時(shí),CMD.EXE 不等應(yīng)用程序終止就返回命令提示符。如果在命令腳本內(nèi)執(zhí)行,該新行為則不會(huì)發(fā)生。
 
如果執(zhí)行的命令行的第一個(gè)符號(hào)是不帶擴(kuò)展名或路徑修飾符的字符串 "CMD","CMD" 會(huì)被 COMSPEC 變量的數(shù)值所替換。這防止從當(dāng)前目錄提取 CMD.EXE。
 
如果執(zhí)行的命令行的第一個(gè)符號(hào)沒有擴(kuò)展名,CMD.EXE 會(huì)使用PATHEXT 環(huán)境變量的數(shù)值來決定要以什么順序?qū)ふ夷男U(kuò)展名。PATHEXT 變量的默認(rèn)值是:
 
  .COM;.EXE;.BAT;.CMD
 
 請(qǐng)注意,該語(yǔ)法跟 PATH 變量的一樣,分號(hào)隔開不同的元素。
 
查找可執(zhí)行文件時(shí),如果沒有相配的擴(kuò)展名,看一看該名稱是否與目錄名相配。如果確實(shí)如此,START 會(huì)在那個(gè)路徑上調(diào)用Explorer。如果從命令行執(zhí)行,則等同于對(duì)那個(gè)路徑作 CD /D。

4.1 可以和 第2段“調(diào)用call 和不用call 的區(qū)別” 代碼作對(duì)比

@echo off
set a=環(huán)境變量
start call.bat hi hello
echo 下一步
pause
exit /b 0

call.bat內(nèi)容如下

rem call.bat
echo %1
echo %2
echo %a%
pause

運(yùn)行結(jié)果

到此這篇關(guān)于批處理命令call、start、goto的使用的文章就介紹到這了,更多相關(guān)批處理call、start、goto內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

美國(guó)服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部