BAT特殊字符(轉)


BAT特殊字符
1. 點 
與echo連用,作用是換行 
示例1 [輸出空行] 
echo. 


2 > 定向符[輸出] 
將命令的輸出進行重定向 [一般用於將結果寫入文件] 
注意 nul 為空設備 >nul 則用於屏蔽輸出內容 [如 pause>nul] 
示例2 [向1.txt中寫入字符串 wind] 
echo wind>1.txt 


3 >> 定向符[輸出] 
將命令的輸出進行重定向 [一般用於將結果寫入文件] 
注意,定向到文件時,它是在末尾追加 > 則會覆蓋 
示例3 [向1.txt中追加寫入字符串 wind] 
echo wind>>1.txt 


4 < 定向符[輸入] 
配合set /p 使用時,從指定的文件中獲取字符串 賦值給變量 
示例4 [將1.txt中第1行內容賦值給變量 wind] 
set /p wind=<1.txt 



5 & 連接符 
連接兩個命令 
注意 不論前面的命令是否成功執行 后面的命令都將執行 
示例5 [依次執行兩個echo 命令] 
echo wind& echo snow 


6 && 連接符 
連接兩個命令 
注意 僅當前面的命令成功執行時 后面的命令才會被執行 
示例6 [echo 命令成功執行 type 命令也將被執行] 
echo wind&& type 1.txt 
示例7 [hello 命令執行失敗 type 命令不會被執行] 
hello&& type 1.txt 


7 || 連接符 
連接兩個命令 
注意 僅當前面的命令執行失敗時 后面的命令才會被執行 
示例8 [echo 命令成功執行 type 命令不會被執行] 
echo wind|| type 1.txt 
示例9 [hello 命令執行失敗 type 命令將被執行] 
hello|| type 1.txt 


8 | 傳遞符 
將前面命令的結果 傳遞給后面的命令使用 [一般用於查找] 
示例10 [顯示字符串wind 並 傳遞給find 查找 關鍵字 w] 
echo wind| find "w" 
2,6,7,8綜合 示例11 [將字符串傳遞給find查找 並 輸出查找結果] 
echo wind| find "w">nul&& echo 找到字符w|| echo 未找到字符w 


9 ^ 轉義符 [脫字符] 
脫去特殊符號的作用 使之成為一個純粹的符號 
示例12 [輸出字符串 &&&&& ] 
echo ^&^&^&^&^& 



10 @ at 
其作用相當於 echo off 不顯示命令本身 
不同之處是@僅處理單個命令 echo off則是全局的 
示例13 [命令行不會顯示] 
@echo wind 


11 % 百分號 
兩個百分號表示取值 
示例14 [顯示變量 wind 的值 smile] 
set wind=smile 
echo wind的值為 %wind% 
 注意,如果要輸出一個百分號 則在批處理中要寫成兩個 


12 * 星號 
通配作用 
示例15 [刪除所有文本文件] 
del *.txt

 

批處理中%cd%與%~dp0的區別

/*
 * directory structure
 * c:
 * -c.bat
 * -program
 *        -d.bat
 */
/* c.bat */
call "%cd%\program\d.bat"
/* d.bat */
@echo off
echo cd = %cd%
echo dp0 = %~dp0

直接運行d.bat,結果為

cd = C:\program
dp0 = C:\program\

直接運行c.bat,結果為

cd = C:\
dp0 = C:\program\

從上面的結果可以看出:

  • 執行d.bat時,當前工作目錄為d.bat所在目錄;
  • 執行c.bat時,當前工作目錄為c.bat所在目錄,即使在調用d.bat后,該工作目錄依舊是c.bat所在目錄。

問題總結

我們來重申下%~dp0和%cd%的區別,%cd%和%~dp0都能用來表示當前目錄,但是他們在不同的使用場景下,功能卻不相同:

  • %cd%代表的是當前工作目錄(current working directory,variable);
  • %~dp0代表的是當前批處理文件所在完整目錄(the batch file’s directory,fixed)。

從目前我們的使用情況來看,盡量使用%~dp0,不建議使用%cd%,有其他需求除外

 

參考:

http://www.cnblogs.com/dongzhiquan/p/6551509.html

http://freehacker.cn/developing/system/dos-current-path/?utm_source=tuicool&utm_medium=referral


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM