批處理引數 n 的替代

2021-08-25 04:29:26 字數 2100 閱讀 6203

選項語法:

~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是帶有這個工具的,可是找了...