如何在批处理文件中逐行搜索。
并且只有前 4 个字符以 开头时SLUI
,才VRLP
必须删除该行。
SLUI
现在我在脚本中有以下命令,只有当该行或该行在其他地方存在时,该行也会被删除VRLP
:
set "prsc=prsc.txt"
if not exist "%prsc%" exit /b
copy /y "%prsc%" "%prsc_bup.txt%" >nul 2>&1 || exit /b
find /v "vrlp"< "%prsc_bup.txt%" >"%prsc%"
copy /y "%prsc%" "%prsc.weg%" >nul 2>&1 || exit /b
find /v "sluit"< "%prsc.weg%" >"%prsc%"
del "%prsc.weg%"
答案1
@echo off && cd /d "%~dp0"
=;( findstr /bvi "vrlp sluit" <.\"prsc.txt"
=;) 1>.\"del.tmp"
=;( move /y .\"del.tmp" .\"prsc.txt"
=;) 1>nul 2>&1 & exit /b
- 过滤不以以下项开头的行start with
SLUI
或VRLP
区分大小写
findstr /bv "SLUI VRLP" <.\prsc.txt
- 过滤不以以下项开头的行
SLUI
或VRLP
不区分大小写
findstr /bvi "vrlp sluit" <.\prsc.txt
- 现在,如果您想通过过滤字符串来获取行并保留空白行而不丢弃,那就变得有点复杂了:
@echo off && cd /d "%~dp0"
=;( for /f "usebackq tokens=1*delims=:]" %%i in =;(`
findstr /nbvi "vrlp sluit" ^<.\"prsc.txt" `);= do echo/%%~j
=;) 1>.\"del.tmp"
=;( move /y .\"del.tmp" .\"prsc.txt" =;) 1>nul 2>&1 & exit /b
...只有以下行也会被删除某处否则低密度住宅或者虚拟现实与激光雷达存在:
- 因此只需删除该标志,因为这是处理/限制过滤器在该行处进行操作的原因:
findstr /B
/Beginning
@echo off && cd /d "%~dp0" =;( for /f "usebackq tokens=1*delims=:]" %%i in =;(` findstr /nvi "vrlp sluit" ^<.\"prsc.txt" ` =;) do echo/%%~j =;) 1>.\"del.tmp" =;( move /y .\"del.tmp" .\"prsc.txt" =;) 1>nul 2>&1 & exit /b
其他资源:
Cd
|ChDir
FindSTR /?
Move /?
For /?
For /F /?
- 条件执行
- 命令重定向
|
,<
,>
,2>
, ETC。
- 转义字符
- Windows 命令解释器如何
cmd.exe
解析脚本