目錄跳轉:cd
當我們需要處理不同路徑下的檔案的時候,很可能需要切換目錄,這個時候,可以考慮使用目錄跳轉命令
cd。
例如,我們開啟命令列視窗的時候,一般是這樣操作的:在案頭左下角找到“開始”菜單,開啟“運行”,輸入“cmd”,斷行符號。這個時候,命令列視窗預設的目前的目錄位於目前使用者所在的路徑下,比如:C:/Documents and Settings/JM,如所示。
預設目錄
2008-11-12 21:19
一般而言,這個目錄下並沒有我們想要處理的檔案,我們很可能需要跳轉到其他目錄,比如說:C盤根目錄,這個時候,我們就需要使用cd來實現目錄的跳轉了:cd c:/。
跳轉到C盤
2008-11-12 21:19
cd的全稱是Change Directory,直譯為改變檔案夾,也就是跳轉目錄、切換路徑的意思。它後面可以接磁碟機符號、完整路徑和相對路徑。從它的全稱可以得知,它不能操控檔案,而只能作用於磁碟機或檔案夾。例如,我們使用 cd c:/boot.ini 這個命令來跳轉(boot.ini是檔案而非檔案夾),就會出現“目錄名無效”的錯誤,如所示。
不能跳轉到檔案
2008-11-12 21:19
如果要跳轉到目前的目錄的根目錄下的話,可以使用一條簡單的命令:cd/。如所示。
跳轉到根目錄下
2008-11-12 21:19
繼續跳轉,cd c:/windows/temp,跳轉到臨時目錄下。
此時,如果想回到上一層目錄windows,可以使用這條命令:cd..。如所示。
跳轉到上一層
2008-11-12 21:19
想想看,如果執行 cd. 會發生什麼情況?
結果,目錄沒有發生跳轉,原地不動。如所示。利用這個原理,可以用 cd.>test.txt 來構造0位元組的文字檔。詳細情況,請參考這篇文章:本人常用的批處理實用技巧 之第2點。
跳轉到目前的目錄
2008-11-12 21:19
原來,在cmd中,.、..和/表示相對路徑,.是目前的目錄,..是上一層目錄,而/表示根目錄。
來看一個比較詭異的現象:
何時使用強制跳轉參數?
2008-11-12 21:19
從目前的目錄下跳轉到不同分區路徑
d:/的時候,
cd
d:/沒有成功,目前的目錄沒有發生改變;當添加了一個參數 /
d 之後,命令成功地執行了。原來,要跳轉到不同分區的時候,需要添加強制跳轉參數 /
d 。但是,如果進入的是目前的目錄的子目錄,則可以不使用 /
d 參數。這一點是很容易被大家忽略的,希望能引起足夠的重視。
再來看一個更加詭異的現象:
磁碟機冒號後添加反斜線與否的差別
2008-11-12 21:19
原來,當輸入的是當前磁碟機代號+冒號的時候,將顯示目前的目錄的完整路徑;當輸入的是當前磁碟機代號+冒號+反斜線的時候,將跳轉到當前路徑的根目錄下。
CD 的另一個非常有價值的用途是:顯示當前的完整路徑,一般用通過 %cd% 加以引用。如所示。此時,CD 作 Current Directory 解釋,即“當前檔案夾”。
顯示當前路徑
2008-11-12 21:26
進階話題:看看下面這幅圖反映了什麼問題?
以樹形格式羅列檔案
tree ,在英語中的基本含義是“樹”,在cmd中,tree命令的功能是以樹形格式羅列檔案。
當你向別人展示你自己所做光碟片的內容的時候,或者是羅列你硬碟上某個目錄下的資料的時候,tree命令顯得相當方便,並且能讓你展示的內容層次分明,井井有條。啥也不說了,,順便溫習一下cd命令。
tree命令示範
2008-11-12 22:12
當然,你可能並不滿足於只給別人抓張圖,你可能還想把這些資訊匯入到檔案中去,加工一番再發出去,那麼,請使用這條命令:tree>list.txt,這樣,所有的資訊都儲存到list.txt檔案中去了。
更多的命令,請在cmd視窗中用 tree /? 查詢(其實就兩個參數)。
很可能只是一條簡單的命令,只是一眨眼的工夫,就解決了你的大問題,這就是cmd的簡潔,這就是cmd的力量!
內容重新導向符號:>和>> 當我們在cmd視窗中查詢某條命令的協助資訊的時候,協助資訊是顯示在命令列視窗中的,命令列視窗關閉後,這些協助資訊就看不到了,如果下次還想看,又得在命令列視窗中輸入查詢命令,比較繁瑣。
有沒有辦法把顯示在命令列視窗中的協助資訊儲存下來呢?
答案是肯定的,並且有不止一種答案。
稍微繁瑣一點的辦法就是複製命令列視窗中的資訊,然後粘貼到文本中儲存起來。這個操作比較繁瑣的:在命令列視窗點擊右鍵,然後選擇“標記”,用滑鼠拉出複製範圍,然後敲斷行符號,最後,粘貼到文本中去。
高效的辦法就是:使用重新導向符號,把原本輸出到cmd視窗中的資訊重新導向到文字檔中去。
重新導向符號有兩個:>和>>。它們的作用都是改變各種提示資訊的輸出方向,把提示資訊輸出到指定的地方去——各種提示資訊預設是輸出到螢幕上去的。例如:tree /?>help.txt,這條命令語句就把 tree 命令的協助資訊重新導向到了help.txt檔案中,help>nul 就把 help 命令的提示資訊重新導向到了空裝置中去(nul表示空裝置)。
想看看cmd中都有哪些基本命令嗎?在cmd視窗中輸入 help 就可以看到了;如果想把這些基本命令資訊儲存下來,請使用 help>d:/list.txt ,然後,到D盤根目錄下找到list.txt檔案開啟即可。
>和>>雖然都起到重新導向提示資訊的作用,但是,它們的作用稍有差別。單個的>表示以覆蓋方式重新導向提示資訊,也就是說如果目的地原來有內容,將把原來的內容清除掉,用新內容填充;>>表示以追加的方式重新導向提示資訊,也就是說,如果目的地原來有內容,原有的內容將保持不變,在原有內容之後追加新內容。例如:假設d:/test.txt中的內容是:I Love batch。那麼,在cmd視窗中,分別使用如下兩條語句:echo me,too>d:/test.txt和echo me,too>>d:/test.txt,將會發現,使用第一條語句之後,test.txt中只有一行內容:me,too,而使用第二條語句之後,test.txt中將有兩行內容,分別是I Love batch和me,too。
for語句從入門到精通
批處理是一門簡單的指令碼語言,雖然不能獨當一面,但是,若作為工作中的協助工具輔助,絕對會讓大家有隨用隨寫、稱心如意的暢快感。
和其他語言相比,批處理語言有其先天性的優勢:
1、系統內建,無需另行安裝;
2、命令少,語句簡潔,上手非常快;
3、編寫出來的指令碼小巧玲瓏,隨寫隨用;
但是,因為它以命令列方式工作,操作多有不便,在圖形介面大行其道的windows世界裡,多多少少會讓福士望而卻步;就算是對命令列有好感的新手,面對微軟有如天書的協助檔案,很多人也會敗下陣來,因此,論壇裡很多會員也發出了編寫系統的批處理教程的呼聲。
編寫系統的批處理新手教程,一直是論壇管理層討論的熱點問題,但是,各位管理員大多都有工作在身,而系統的教程涉及的面是如此之廣,面對如此浩大的工程,僅憑一兩個人的力量,是難以做好的,因此,本人退而求其次,此次發布的教程,以專題的形式編寫,日後人手漸多之後,再考慮組織人力編寫全面的教程。
之所以選擇最難的for,一是覺得for最為強大,是大多數人最希望掌握的;二是若寫其他命令教程,如果沒有for的基礎,展開來講解會無從下手;三是for也是批處理中最複雜最難掌握的語句,把它攻克了,批處理的學習將會一片坦途。
這次的for語句系列教程,打算按照for語句的5種句式逐一展開,在講解 for /f 的時候,會穿插講解批處理中一個最為關鍵、也是新手最容易犯錯的概念:變數延遲,大綱如下:
引用:
一 前言
二 for語句的基本用法
三 for /f (含變數延遲)
四 for /r
五 for /d
六 for /l