我已经非常接近我想要的了,如果文件只是干净的话,脚本运行正常,但是大多数都有几个注释,其中很少有/* ... */
块内的其他废话需要被删除。
所以我只想处理具有字符串level.waypoints
这就是我现在所拥有的:
@echo off
setlocal enableDelayedExpansion
set findtext="level.waypoints"
for %%F in (*.gsc) do (
set "out="
set "i=x"
> "%%~nF.cfg" (
for /f usebackq^ tokens^=2^,4^,5^ delims^=[]^=(^)^;^"^ %%A in ("%%F") do (
if %%A neq !i! (
if defined out echo !out!"
set /a "i=%%A, j=0"
set "out=set flwp_!i! "!i!"
) else (
set /a j+=1
if !j! leq 3 (set "out=!out!,%%B") else set "out=!out!,%%C"
)
)
if defined out echo !out!"
set /a "fim=i+1"
echo set flwp_!fim! "eof"
)
)
我在考虑将findstr %findtext%
添加到这些循环中,但我尝试了许多不同的方法,但我们还没有成功,但是你能帮助我吗?
答案 0 :(得分:1)
如果您只想删除包含字符串.gsc
的每个level.waypoints
文件的行
@echo off
set "findtext=level.waypoints"
for %%a in (*.gsc) do (
for /f "delims=" %%b in ('type "%%a"') do (
echo %%b | find /i "%findtext%" >nul || echo %%b >>"%%~na_New%%~xa"
)
move "%%~na_New%%~xa" "%%a" 2>nul
)