我有以下在批處理文件中的一段代碼的選項EnableDelayedExpansion上:感嘆號衝突
::
:: Split
::
for /F "tokens=*" %%F in ('dir /s /b *.cue') do (
pushd .
cd %%~dpF
mkdir out
cd out
:: Set input file
set inFile=
if exist "%%~dpnF.flac" (
set inFile="%%~dpnF.flac"
) else (
if exist "%%~dpnF" (
set inFile="%%~dpnF"
) else (
set inFile="%%~dpF*.flac"
)
)
shntool.exe split -f "%%F" -t %%t -o flac -m /-?':' !inFile!
echo %ERRORLEVEL%
if %ERRORLEVEL% GEQ 1 (
rmdir /q out
)
popd
)
的代碼示出搜索.CUE - .FLAC雙(CD撕裂)遞歸地在當前目錄中並使用shntool進行分割。當某些目錄名稱包含與EnableDelayedExpansion選項衝突的exlamation標記(!)並且exlamation標記消失於變量擴展中時會出現問題,因此在某些對上失敗。
我該如何修改此片段以便以某種方式轉義!inFile中的exlamation標記!變量爲了使它正常工作?