DOS批處理幾點說明

2021-08-25 10:14:04 字數 3021 閱讀 4055

1. %* 用法

用於傳遞引數給批處理檔案中的命令或批處理

例1. 批處理檔案 test.bat, 內:

dir %*

命令:d:/temp>setupcmdline.bat "e:/test"

結果:d:/temp>dir "e:/test"

驅動器 e 中的卷沒有標籤。

卷的序列號是 5ef3-a7a1

e:/test 的目錄

2010-09-14 14:27 .

2010-09-14 14:27 ..

2010-09-14 14:27 mytest

2010-09-14 14:27 webservice

0 個檔案 0 位元組

4 個目錄 5,349,498,880 可用位元組

例2. 批處理檔案test.bat內容:

for %%p in ( %* ) do echo %%p

命令:d:/temp>test "e:/test" "e:/test2" "e:/temp"

結果:d:/temp>for %p in ("e:/test" "e:/test2" "e:/temp") do echo %p

d:/temp>echo "e:/test"

"e:/test"

d:/temp>echo "e:/test2"

"e:/test2"

d:/temp>echo "e:/temp"

"e:/temp"

2. pause 自定義提示訊息

pause命令執行後一般出現 "按任意鍵繼續..." 字樣,可以使用下面的手段定義訊息:

@echo 使用我自己定義的訊息

pause > nul

3. cd 命令

/d引數, 可以切換包括碟符的路徑

命令:d:/temp>cd /d "e:/test"

結果:e:/test>

4. %cd%指當前路徑

例: 命令:

c:/documents and settings/administrator>echo %cd%

結果:c:/documents and settings/administrator

5. %0, %1, %2, %n

%0指批處理檔案本身

%1指批處理檔案第乙個引數

%2指批處理檔案第二個引數

例:檔案 test.bat內容入下:

echo %%0=%0

echo %%1=%1

echo %%2=%2

命令:

d:/temp>setupcmdline.bat param1 param2

結果:

d:/temp>echo %0=setupcmdline.bat

%0=setupcmdline.bat

d:/temp>echo %1=param1

%1=param1

d:/temp>echo %2=param2

%2=param2

6. %%

對%的轉義,即作為%字元本身輸出?

如上面的例子,將test.bat內容修改如下:

echo %0=%0

echo %1=%1

echo %2=%2

命令:

d:/temp>setupcmdline.bat param1 param2

結果:

d:/temp>echo setupcmdline.bat=setupcmdline.bat

setupcmdline.bat=setupcmdline.bat

d:/temp>echo param1=param1

param1=param1

d:/temp>echo param2=param2

param2=param2

7. %~dp0

即對%0進行處理,去掉引號

%~d0 去引號,取碟符

例1. 批處理檔案test.bat內容:

echo %1

echo %~d1

echo %~dp1

命令:d:/temp>test "e:/test"

結果:d:/temp>echo "e:/test"

"e:/test"

d:/temp>echo e:

e:d:/temp>echo e:/

e:/

例2.

命令:

d:/temp>test "e:/test/"

結果:d:/temp>echo "e:/test/"

"e:/test/"

d:/temp>echo e:

e:d:/temp>echo e:/test/

e:/test/(注意這裡的區別,test/被加了進來)

例3.test.bat內容:

@echo %1

@echo %~d1

@echo %~dp1

@echo %~dpn1

命令:

d:/temp>setupcmdline.bat "e:/test/test.dat"

結果:d:/temp>set cur_dir=d:/temp

"e:/test/test.dat"

e:e:/test/

e:/test/test

e:/test/test.dat

d-取碟符; p-取路徑; n-取檔名

命令參考:

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

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

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

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

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

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

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

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

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

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

批處理Dos命令

來自vista 有關某個命令的詳細資訊,請鍵入 help 命令名 assoc 顯示或修改副檔名關聯。attrib 顯示或更改檔案屬性。break 設定或清除擴充套件式 ctrl c 檢查。bcdedit 設定啟動資料庫中的屬性以控制啟動載入。cacls 顯示或修改檔案的訪問控制列表 acl call...

dos批處理中 dp0 的說明

dp0 d 為drive的縮寫,即為驅動器,磁碟 p 為path縮寫,即為路徑,目錄 cd是轉到這個目錄,使用 d 開關,除了改變驅動器的當前目錄之外,還可改變當前驅動器。選項語法 0 刪除任何引號 擴充 0 f0 將 0 擴充到乙個完全合格的路徑名 f 是file,即檔案 d0 僅將 0 擴充到乙...

DOS批處理檔案

dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...