關於批處理中的%
1樓:匿名使用者
首先 ,%是批處理變數引導符。
這個百分號嚴格來說是算不上命令的,它只是批處理中的引數而已。
引用變數用%var%,呼叫程式外部引數用%1至%9等等。
0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*為命令列傳遞給批處理的引數。
0 批處理檔案本身,包括完整的路徑和副檔名。
1 第一個引數。
9 第九個引數。
從第一個引數開始的所有引數。
引數%0具有特殊的功能,可以呼叫批處理自身,以達到批處理本身迴圈的目的,也可以複製檔案自身等等。
其次,%是個escape字元,通常將之譯為轉義字元,但也有更形象的譯名脫逸字元、逃逸字元等。也就是說%不僅僅將與其相關的特定字串轉義並替換為特定字串,而且自身也會被「脫逸」。而且類似於c語言中的轉義字元"\"雙%會轉義並脫逸為單%,四%則脫為雙%。
另外,for命令必然會出現%或%%。for本身是一個特殊的命令,類似於一個特化的命令直譯器,因為它的功能實現需要執行多條語句,因此它必須也具有對命令列(特指do後的命令列)分析處理的功能。而command/cmd實現for時自然會借用自身原有的命令列分析模組,因此for具有二級轉義的特性,for中do後的語句被分兩級分析和解釋,第一級在command/cmd讀入並解釋for命令列時,第二級在for讀入並解釋do命令時,它通常會對同一命令列的進行多次解釋。
然後,我們可以注意到,在do中使用命令列引數變數和環境變數時,不需要雙%,那是因為,這些變數在經過第一級轉義後,被替換成特定的不變的字串常量,參與for迴圈的所有執行過程;而替代變數則要求在執行(do後的子命令列中)過程中不斷的動態變化,而這個變化自然仍需要通過脫逸字元來實現,因此使用雙%就是成了必然的選擇。
另外,還需要注意到,在命令列中使用for時不需要雙%,這源於命令直譯器對命令列與批處理的處理方式不同。在早期的dos版本中,%在命令列中不被視為轉義字元,所以不會被轉義和脫逸,所以當時無法在命令列直接引用環境變數。而使用for時,只需要一個%供for進行轉義和脫逸就夠了。
在以後的命令直譯器版本中,加入了命令列轉義的支援(主要是環境變數的支援),但命令列for使用單%的傳統仍然保留了下來。
而 cmd中的變數延遲替換是屬於特殊的情況,但不違背以上的轉義原則,只是for中的環境變數不再是常量了。
2樓:匿名使用者
%%可以稱其為環境變數,就寫一個簡單的回顯20次「you are so sweet」
echo off&color ac
set x=1
bif %x%==21 goto overecho you are so sweet %x%次set /a x=x+1
goto b
over
3樓:匿名使用者
%是批處理中的變數標識。
echo off
set a=hello
用set定義變數。
echo %a%
變數a的值是hello
pause特殊變數%0 %1-%9
之所以把%0單獨列出,是因為%0是特殊中的特殊@echo off
echo hello
0pause
死迴圈,本來是隻會輸出hello一次,但加上%0就會不停的輸出,直到你關閉程式為止。
echo off
call :a hello world
aecho %1
echo %2
pause>nul
執行**看看,你就明白了。
什麼是批處理檔案?
4樓:革盼秋宇恬
所謂批處理檔案就是將一些常用的命令寫入一個文字檔案內。當使用這個批處理檔案時,只要鍵入批處理的檔名,系統將依照檔案中的命令來執行全部或者是一部分指定要執行的命令。這樣就可以簡化我們的工作,而不用每次都需要手動鍵入很多的命令來執行一些動作。
因為批處理檔案是以純文字的形式存在的,所以只要有字處理功能的軟體就可以建立批處理檔案;當然,利用「copy
con檔名。bat」的命令形式也可以建立批檔案。
在使用批處理檔案時,我們應該瞭解以下這些問題:
批處理檔案的副檔名為。bat,執行時無需鍵入副檔名。
批處理檔案不能與dos命令的副檔名為。com、.exe的檔案同名否則就不能被執行,因為對同名檔案系統執行的次序為dos內部命令→.com→.exe→批命令。
可用type命令檢視批處理檔案的內容。
利用∧c和∧break終止批處理檔案的執行,機器會提示terminal
被稱為系統批處理檔案,啟動dos時會自動執行該檔案,所以其內可儲存一些希望每次啟動dos時都執行的dos命令或實用程式。注意:
此檔案必須存放在啟動盤的根目錄中才起作用。
批處理作業語句。
echo禁止或允許螢幕的命令顯示語句;
rem註釋語句;
pause暫停語句;
goto轉向語句;
if條件判斷語句;
for重複執行語句;
shift左移引數語句;
call呼叫語句。
5樓:樹又綠皮敏
如果沒有一定的相關知識恐怕不容易看懂和理解批處理檔案,也就更談不上自己動手編寫了。
批處理檔案是無格式的文字檔案,它包含一條或多條命令。它的副檔名為。bat
或。cmd。在命令提示下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫cmd.
exe按照該檔案中各個命令出現的順序來逐個執行它們。使用批處理檔案(也被稱為批處理程式或指令碼),可以簡化日常或重複性任務。
批處理的釋義
6樓:匿名使用者
批處理是一種簡化的指令碼語言,也稱作巨集。它應用於dos和windows系統中,它是由dos或者windows系統內嵌的命令直譯器(通常是command. com或者cmd.
exe)解釋執行。類似於unix中的shell指令碼。批處理檔案具有。
bat或者。cmd的副檔名,其最簡單的例子,是逐行書寫在命令列中會用到的各種命令。更復雜的情況,需要使用if,for,goto等命令控制程式的執行過程,如同c,basic等中高階語言一樣。
如果需要實現更復雜的應用,利用外部程式是必要的,這包括系統本身提供的外部命令和第三方提供的工具或者軟體。批處理檔案,或稱為批處理程式,是由一條條的dos命令組成的普通文字檔案,可以用記事本直接或用dos命令建立,也可以用dos下的文字器來。
在「命令提示」下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫執行該批處理程式。一般情況下,每條命令佔據一行;當然也可以將多條命令用特定符號(如:
、&等)分隔後寫入同一行中;還有的情況就是像if、for等較高階的命令則要佔據幾行、幾十甚至幾百行的空間。系統在解釋執行批處理程式時,首先掃描整個批處理程式,然後從第一行**開始向下逐句執行所有的命令,直至程式結尾或遇見exit命令或出錯意外退出。
關於批處理符號的使用問題
呵呵,樓主有鑽研精神,對這個問題我是這樣理解的 1 所有命令格式其實是原命令程式編者所制定的,甚至拿發行者的解釋絕對有道理的情況而出現問題也不是沒可能的,那沒道理可講,它能否成功,完全取決於那程式是怎麼編的 2 被稱為輸入重定向,按解釋是可以代替通常的鍵盤輸入 3 date 命令它既接收 隨後跟隨的...
解讀批處理語句,批處理的問題 語句是否可以並列,例如 if 條件成立是執行多條語句
del f 是強制刪除只讀檔案 q 是安靜模式,刪除全域性萬用字元時不要求確認。cls是清屏 cd是進入 cd.是進入上級目錄 ren是重新命名檔案 1985年,一個名為sea公司開發的名為arc的壓縮軟體獲得了廣泛關注。這是ms dos環境下第一個壓縮應用軟體。arc在ms dos時代,曾經是佔據...
批處理檔案if新手問題,批處理檔案 IF 新手問題
if errorlevel number command,表示如果最後執行的command返回一個等於或大於 指定number 則退出編碼if string1 string2 command string1 string2 如果指定的文字字串相等,即string1 string2,就執行comman...