Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Windows批处理:在文件中查找带有“的字符串”;[“在字符串中”_String_Windows_Batch File_Batch Processing - Fatal编程技术网

String Windows批处理:在文件中查找带有“的字符串”;[“在字符串中”

String Windows批处理:在文件中查找带有“的字符串”;[“在字符串中”,string,windows,batch-file,batch-processing,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 fin

我已经有一个函数可以删除多个文件中不包含字符串的所有行,它可以很好地用于普通字符串:

@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“[”会导致一切出错,弄乱临时文件,最终导致错误“file not found”

我想应该有一些字符,我需要把它放在“[”像“[”之前,以使它工作,但我找不到它…已经尝试了很多没有运气的/

那么我如何搜索字符串“level.waypoints[”并运行呢


感谢@jmoon发送的链接,该链接说:

特例 少数命令遵循稍有不同的规则,FINDSTR、REG和RUNAS都将\用作转义字符,而不是^

尝试并运行!因此结束字符串为“level.waypoints\[”


干杯!

你会想要一个转义角色。请看:我还没有尝试过你的脚本,但是
findstr/c:“level.waypoints[“*.txt
在我的位置上工作正常。无论如何,你会有更好的运气powershell@jmoon谢谢!通过这个页面,我发现了为什么“^”不起作用,只需要使用“\”。现在效果很好!干杯!