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谢谢!通过这个页面,我发现了为什么“^”不起作用,只需要使用“\”。现在效果很好!干杯!