
怎樣把BAT批量延遲影響的嘆號沒有了的字符串給還原回來
上面這段話是一個(gè)比較完整的段落,批處理文件最開始有@ECHO OFFSETLOCAL ENABLEDELAYEDEXPANSION這兩句,因?yàn)樽兞垦舆t,中間的30行那句 ECHO;!str1!>>!curPath!tmp.c 變量str1里面有嘆號的時(shí)候嘆號全沒有了,哪位大俠指導(dǎo)一下?nclick="copycode($('code0'));">復(fù)制代碼
- SET curPath=%CD%
- SET aFolder=adlint
- SET var1=/usr/include
- SET var2=#include
- SET var3=!curPath:=/!
- SET var3=!var3!/copy/usr/include
- SET var4=commoninterfaceinclude
- ......
- IF EXIST !curPath!tmpchk.txt (
- FOR /F %%A IN ('FINDSTR .* !curPath!tmpchk.txt') DO (
- ECHO %%A
- FOR %%i IN (%%A) DO (
- CALL :SHOW %%i
- SET cPath=%%~dpi
- )
- COPY /Y %%A !curPath!copy>NUL
- IF EXIST !curPath!tmp.c (DEL /F /S /Q !curPath!tmp.c>NUL)
- FOR /F tokens=1* delims=: %%i IN ('FINDSTR /N .* %%A') DO (
- SET str1=%%j
- IF DEFINED str1 (
- IF /I !str1:~0,8! EQU !var2! (
- CALL SET str2=%%str1:!!var1!!=%%
- IF NOT !str1! EQU !str2! (CALL SET str1=%%str1:!var1!=!var3!%%)
- ECHO;!str1!>>!curPath!tmp.c
- ) ELSE (ECHO;%%j>>!curPath!tmp.c)
- ) ELSE (ECHO.>>!curPath!tmp.c)
- )
- REN !curPath!tmp.c !cName!
- MOVE /Y !curPath!!cName! !cPath!
- )
- )
- :SHOW
- SET cName=%~nx1

