我正在尝试编辑我所搜索行后面的一行。使用的文件实际上是通过 LGPO.exe 解析 registry.pol 生成的。以下是文本文件的示例:
Computer
Software\Policies\Microsoft\Windows\Personalization
NoChangingLockScreen
DELETE
Computer
Software\Policies\Microsoft Services\AdmPwd
PasswordComplexity
DWORD:4
Computer
Software\Policies\Microsoft Services\AdmPwd
PasswordLength
DWORD:9
Computer
Software\Policies\Microsoft Services\AdmPwd
PasswordAgeDays
DWORD:24
我正在尝试搜索关键字“PasswordComplexity”,之后我会查看下一行以编辑数据(本例中为“DWORD:4”),例如改为“DWORD:12”。无法简单地搜索关键字“DWORD:4”,因为另一个设置可能具有密钥对值,并且它会覆盖其他设置。如何编辑关键字下一行的特定行?
答案1
[文件.bat]
@echo off
SetLocal EnableDelayedExpansion
cls
set tmp=
IF EXIST file2.txt DEL file2.txt > nul
FOR /F %%a in (file.txt) do (
IF "!tmp!"=="PasswordComplexity" (
IF "%%a"=="DWORD:4" (
SET tmp=DWORD:12
) ELSE (
SET tmp=%%a
)
) ELSE (
SET tmp=%%a
)
IF "!tmp!"=="Computer" echo.>>file2.txt
echo !tmp! >> file2.txt
)
file.txt
- 源脚本
file2.txt
- 已处理脚本