)的文件中使用findstr時批處理將發生錯誤如果我的文本文件包含特殊字符(如此),如何擺脫下面的錯誤?在包含特殊字符(如<
Set_Param_10A "TRUE" {xnetwork[<11:0:-1>]}
如果我刪除在文本文件中這一行,那麼我的批處理程序都能流暢運行,否則就會給下面的錯誤:
The filename, directory, or volume label syntax is incorrect
我所知,這是造成由特殊這種在文件中<,但我不能夠在文件中刪除此,我只想批處理程序忽略這個...
下面是我的代碼:
@ECHO OFF
SETLOCAL
SET matchpattern="0632"
FOR /f "delims=" %%a IN (log_network.txt) DO (SET currentline=%%a & CALL :match_function)
pause
GOTO :EOF
:match_function
ECHO %currentline%|findstr /I /R /C:"%matchpattern%" > NUL
if %errorlevel%==0 (
echo %currentline%
)
個
log_network.txt:
Set_Param_10A "TRUE" "xnetwork.exist.5846"
Set_Param_10A "TRUE" "xnetwork.exist.7425"
Set_Param_10A "TRUE" "xnetwork.exist.1420"
Set_Param_10A "TRUE" "xnetwork.exist.0632"
Set_Param_10A "TRUE" "xnetwork.exist.1112"
Set_Param_10A "TRUE" "xnetwork.exist.8524"
Set_Param_10A "TRUE" "xnetwork.exist.3675"
Set_Param_10A "TRUE" "xnetwork.exist.3344"
Set_Param_10A "TRUE" "xnetwork.exist.1276"
Set_Param_10A "TRUE" "xnetwork.exist.4796"
Set_Param_10A "TRUE" "xnetwork.exist.3349"
Set_Param_10A "TRUE" "xnetwork.exist.0048"
Set_Param_10A "TRUE" {xnetwork[<11:0:-1>]}
我可以知道爲什麼%% a不等於「%% a」? 沒有遵循你在匹配函數中修改的內容,但只添加了%% a的雙引號,我能夠很容易地從錯誤中刪除...謝謝...但不是盲目追隨,我希望知道爲什麼我需要把「」? –
如果你不在''''<'and '>'之間放置'%% a',char將被解釋爲重定向字符。這就是爲什麼你會得到一個錯誤。 – SachaDee
你可以看看這裏:http://www.robvanderwoude .COM/escapechars.php – SachaDee