cmd擴充套件路徑

2021-09-08 19:23:42 字數 3638 閱讀 7108

在命令列視窗中,輸入for /? 即可得到如下引數解釋====

對一組檔案中的每乙個檔案執行某個特定命令。

for %variable in (set) do command [command-parameters]

%variable 指定乙個單一字母可替換的引數。

(set) 指定乙個或一組檔案。可以使用萬用字元。

command 指定對每個檔案執行的命令。

command-parameters

為特定命令指定引數或命令列開關。

在批處理檔案中使用 for 命令時,指定變數請使用 %%variable 而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %i.

如果命令副檔名被啟用,下列額外的 for 命令格式會受到支援:

for /d %variable in (set) do command [command-parameters]

如果集中包含萬用字元,則指定與目錄名匹配,而不與檔名匹配。

for /r [[drive:]path] %variable in (set) do command [command-parameters]

檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的for 語句。如果在 /r 後沒有指定目錄,則使用當前目錄。如果集僅為乙個單點(.)字元,則列舉該目錄樹。

for /l %variable in (start,step,end) do command [command-parameters]

該集表示以增量形式從開始到結束的乙個數字序列。因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生序列 (5 4 3 2 1)。

for /f ["options"] %variable in (file-set) do command [command-parameters]

for /f ["options"] %variable in ("string") do command [command-parameters]

for /f ["options"] %variable in ('command') do command [command-parameters]

或者,如果有 usebackq 選項:

for /f ["options"] %variable in (file-set) do command [command-parameters]

for /f ["options"] %variable in ("string") do command [command-parameters]

for /f ["options"] %variable in ('command') do command [command-parameters]

filenameset 為乙個或多個檔名。繼續到 filenameset 中的下乙個檔案之前,每份檔案都已被開啟、讀取並經過處理。處理包括讀取檔案,將其分成一行行的文字,然後將每行解析成零或更多的符號。然後用已找到的符號字串變數值呼叫 for 迴圈。以預設方式,/f 通過每個檔案的每一行中分開的第乙個空白符號。跳過空白行。您可通過指定可選 "options" 引數替代預設解析操作。這個帶引號的字串包括乙個或多個指定不同解析選項的關鍵字。這些關鍵字為:

eol=c - 指乙個行注釋字元的結尾(就乙個)

skip=n - 指在檔案開始時忽略的行數。

delims=*** - 指分隔符集。這個替換了空格和跳格鍵的預設分隔符集。

tokens=x,y,m-n - 指每行的哪乙個符號被傳遞到每個迭代的 for 本身。這會導致額外變數名稱的分配。m-n 格式為乙個範圍。通過 nth 符號指定 mth。如果符號字串中的最後乙個字元星號,那麼額外的變數將在最後乙個符號解析之後分配並接受行的保留文字。

usebackq - 指定新語法已在下類情況中使用:

在作為命令執行乙個後引號的字串並且乙個單引號字元為文字字串命令並允許在 filenameset 中使用雙引號擴起檔名稱。

某些範例可能有助:

for /f "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給 for 程式體;用逗號和/或空格定界符號。請注意,這個 for 程式體的語句引用 %i 來取得第二個符號,引用 %j 來取得第三個符號,引用 %k 來取得第三個符號後的所有剩餘符號。對於帶有空格的檔名,您需要用雙引號將檔名括起來。為了用這種方式來使用雙引號,您還需要使用 usebackq 選項,否則,雙引號會被理解成是用作定義某個要分析的字串的。

%i 專門在 for 語句中得到說明,%j 和 %k 是通過 tokens= 選項專門得到說明的。您可以通過 tokens= 一行指定最多 26 個符號,只要不試圖說明乙個高於字母 'z' 或 'z' 的變數。請記住,for 變數是單一字母、分大小寫和全域性的;而且,同時不能有 52 個以上都在使用中。

您還可以在相鄰字串上使用 for /f 分析邏輯;方法是,用單引號將括號之間的 filenameset 括起來。這樣,該字串會被當作乙個檔案中的乙個單一輸入行。最後,您可以用 for /f 命令來分析命令的輸出。方法是,將括號之間的 filenameset 變成乙個反括字串。該字串會被當作命令列,傳遞到乙個子 cmd.exe,其輸出會被抓進記憶體,並被當作檔案分析。因此,以下例子:

for /f "usebackq delims==" %i in (`set`) do @echo %i

會列舉當前環境中的環境變數名稱。

另外,for 變數參照的替換已被增強。您現在可以使用下列選項語法:

~i - 刪除任何引號("),擴充 %i

%~fi - 將 %i 擴充到乙個完全合格的路徑名

%~di - 僅將 %i 擴充到乙個驅動器號

%~pi - 僅將 %i 擴充到乙個路徑

%~ni - 僅將 %i 擴充到乙個檔名

%~xi - 僅將 %i 擴充到乙個副檔名

%~si - 擴充的路徑只含有短名

%~ai - 將 %i 擴充到檔案的檔案屬性

%~ti - 將 %i 擴充到檔案的日期/時間

%~zi - 將 %i 擴充到檔案的大小

%~$path:i - 查詢列在路徑環境變數的目錄,並將 %i 擴充到找到的第乙個完全合格的名稱。如果環境變數名未被定義,或者沒有找到檔案,此組合鍵會擴充到空字串

可以組合修飾符來得到多重結果:

%~dpi - 僅將 %i 擴充到乙個驅動器號和路徑

%~nxi - 僅將 %i 擴充到乙個檔名和副檔名

%~fsi - 僅將 %i 擴充到乙個帶有短名的完整路徑名

%~dp$path:i - 查詢列在路徑環境變數的目錄,並將 %i 擴充到找到的第乙個驅動器號和路徑。

%~ftzai - 將 %i 擴充到類似輸出線路的 dir

在以上例子中,%i 和 path 可用其他有效數值代替。%~ 語法用乙個有效的 for 變數名終止。選取類似 %i 的大寫變數名比較易讀,而且避免與不分大小寫的組合鍵混淆。

cmd獲取路徑

echo off echo 當前碟符 d0 echo 當前碟符和路徑 dp0 echo 當前批處理全路徑 f0 echo 當前碟符和路徑的短檔名格式 sdp0 echo 當前cmd預設目錄 cd echo 目錄中有空格也可以加入 避免找不到路徑 echo 當前碟符 d0 echo 當前碟符和路徑 d...

更改cmd預設路徑

更改cmd命令提示符的預設當前路徑 如果經常需要用 cmd 開啟命令列視窗以執行dos命令,那麼你很可能會對該視窗提示符前面的預設路徑感到不爽。不過,你可以在登錄檔的 hkey current user software microsoft commandprocessor 下面新建乙個名為auto...

修改cmd路徑方法 成功

通過使用cd命令,並加入引數 d 可以通過乙個步驟,直接進入指定碟符下的任意資料夾。乙個步驟進入d盤下的test目錄 錯誤示例 如果,不加 d 引數,回車執行之後,是不能更改工作目錄的 通過 計算機管理 修改 在 我的電腦 圖示上右擊 桌面和開始選單的都行 選擇 管理 命令,彈出如圖1所示的 計算機...