我想處理文件名列表,但不知道如何「轉義」命令行以產生一致的輸出,而不管名稱是否包含純文本或特殊字符,如&符號,感嘆號和百分號。如何轉義Windows批處理文件中的保留字符
01 A Test.txt
02 & Test.txt
03 ! Test.txt
04 % Test.txt
輸出是:如果我在四個樣本文件的名字是我的代碼運行(下)
1 "01 A Test.txt"
2 "02 & Test.txt"
"03 COUNT
4 "04Test.txt"
與純文本和符號通過正確的文件名(如長因爲它們用引號引起來),但感嘆號和百分號產生完全不同的結果。如何將變量傳遞給子例程,以便所有四種情況得到相同處理(如果可能,將引號從輸出中刪除)?謝謝。
:: CODE
:: ----
@echo off
setlocal EnableDelayedExpansion
set /a COUNT=0
for /f "tokens=*" %%g in ('dir /b *.txt') do (
set /a COUNT=!COUNT! + 1
call :LIST "%%g" !COUNT! )
pause > nul
exit
:LIST
echo %2 %1
goto :EOF
計數是首先在輸出例子。 – Squashman
@Squashman - 對... – npocmaka
謝謝。這與我一直在嘗試做的事情非常接近。我現在唯一的問題是如何在子程序中做同樣的事情。 –