Windows批处理:在文件中找到一个字符串" ["在字符串中

时间:2017-08-11 16:43:41

标签: string windows batch-file batch-processing

我有一个功能已经在删除所有不包含多个文件中的字符串的行,它可以很好地与常用字符串一起使用:

@echo off
set "string_to_find=level.waypoints["
for /f "tokens=*" %%a in ('dir /B *.gsc') do (
            set "tempfile=%temp%\%%a"
            if exist "%tempfile%" del "%tempfile%" >NUL
            findstr /C:"%string_to_find%" "%~dp0\%%a" >> "%tempfile%"
            if not errorlevel 1 (
                        del "%%a" >NUL
                        move /Y "%tempfile%" "%~dp0\%%a" >NUL
                        if exist "%tempfile%" del "%tempfile%" >NUL
                        echo File "%~dp0\%%a" processed successfully 
            ) else (
            echo Problem processing file "%~dp0\%%a"
            )
)

如果我只搜索" level.waypoints" (没有" [")工作正常,但我不想删除的几行不会被删除。我需要搜索" level.waypoints ["真正删除我需要的所有行,但因为char" ["让一切都搞错了,弄乱了临时文件,最后给出错误"找不到文件" ...

我认为应该有一些我需要放的字符" ["喜欢" ["让它发挥作用,但我无法找到它......已经尝试了许多没有运气。 :/

那么如何搜索字符串" level.waypoints ["和工作?

感谢

1 个答案:

答案 0 :(得分:2)

在@jmoon发送的链接上说:

  

特殊情况   少数命令遵循略有不同的规则,FINDSTR,REG和RUNAS都使用\作为转义字符而不是^

尝试并且有效!所以结束字符串是" level.waypoints \ ["

喝彩!