批處理引數 n 的替代

2021-05-22 10:55:26 字數 2194 閱讀 6127

選項語法:

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

%~f0        - 將 %0 擴充到乙個完全合格的路徑名(「f」是file,即檔案)

%~d0        - 僅將 %0 擴充到乙個驅動器號

%~p0        - 僅將 %0 擴充到乙個路徑

%~n0        - 僅將 %0 擴充到乙個檔名(「n」是name 檔名)

%~x0        - 僅將 %0 擴充到乙個副檔名

%~s0        - 擴充的路徑只含有短名(「s」為short,短的)

%~a0        - 將 %0 擴充到檔案的檔案屬性(「a」為attribute,即屬性)

%~t0        - 將 %0 擴充到檔案的日期/時間(「t」time)

%~z0        - 將 %0 擴充到檔案的大小(size 大小)

%~$path:0   - 查詢列在路徑環境變數的目錄,並將 %0 擴充

到找到的第乙個完全合格的名稱。如果環境變數名

未被定義,或者沒有找到檔案,此組合鍵會擴充到

空字串

可以組合修定符來取得多重結果:

%~dp1       - 只將 %1 擴充套件到驅動器號和路徑

%~nx1       - 只將 %1 擴充套件到檔名和副檔名

%~dp$path:1 - 在列在 path 環境變數中的目錄裡查詢 %1,

並擴充套件到找到的第乙個檔案的驅動器號和路徑。

%~ftza1     - 將 %1 擴充套件到類似 dir 的輸出行。

使用示例:

建立乙個bat檔案(expand_path.bat),內容:

@echo "%~1"

@echo "%~f1"

@echo "%~d1"

@echo "%~p1"

@echo "%~n1"

@echo "%~x1"

@echo "%~s1"

@echo "%~a1"

@echo "%~dps1%~nx1"

pause

然後使用命令

expand_path  "c:/program files/internet explorer/iexporter.exe"

得出:"c:/program files/internet explorer/iexporter.exe"

"c:/program files/internet explorer/iexporter.exe"

"c:"

"/program files/internet explorer/"

"iexporter"

".exe"

"c:/progra~1/intern~1/iexporter.exe"

"""c:/progra~1/intern~1/iexporter.exe"

可以簡單地使用這些組合來批出自己想要的一些路徑。

另外乙個例子:

----------------dobind.bat------------------------------

:將當前資料夾下的所有xsd檔案轉換為c++**檔案

@for /r "%cd%" %%i in (*.xsd) do @echo "%%i" && @xmlbind "%%i" "%cd%"

-------------- bindxml.bat------------------

::將引數1指定的xsd檔案轉換為c++**檔案

:進入引數檔案所在的路徑

cd "%~dps1"

%~d1

:"%~dps1%~nx1"  --output-dir "%~dps1"  %temp%/

:拷貝到temp後進行處理,原因是xsd不支援中文路徑

copy "%1" "%temp%"

:取引數檔名的檔名,呼叫xsd來轉換

xsd cxx-tree --generate-serialization --hxx-suffix .h --ixx-suffix .inl --cxx-suffix .cpp --generate-ostream --

generate-doxygen --generate-comparison  --generate-default-ctor "%temp/%~nx1"

:copy "%temp%%~n1.h" %cd%

:copy "%temp%%~n1.cpp" %cd%

批處理引數 n 的替代

選項語法 0 刪除任何引號 擴充 0 f0 將 0 擴充到乙個完全合格的路徑名 f 是file,即檔案 d0 僅將 0 擴充到乙個驅動器號 p0 僅將 0 擴充到乙個路徑 n0 僅將 0 擴充到乙個檔名 n 是name 檔名 x0 僅將 0 擴充到乙個副檔名 s0 擴充的路徑只含有短名 s 為sho...

批處理引數 n 的替代

選項語法 0 刪除任何引號 擴充 0 f0 將 0 擴充到乙個完全合格的路徑名 f 是file,即檔案 d0 僅將 0 擴充到乙個驅動器號 p0 僅將 0 擴充到乙個路徑 n0 僅將 0 擴充到乙個檔名 n 是name 檔名 x0 僅將 0 擴充到乙個副檔名 s0 擴充的路徑只含有短名 s 為sho...

批處理choice的替代

choice.exe是乙個dos外部命令,用途是讓使用者輸入字元進行選擇,提供給批處理程式一定的互動能力。但是2000以後的windows已經沒有帶有這個命令了,這下要讓使用者選擇的時候該怎麼辦呢?我先是尋找2000下的choice.exe,微軟出的resource kit是帶有這個工具的,可是找了...