我想使用批处理在文件的段落末尾插入一行 脚本。在我的文件中,段落的最后一行不清楚。它是 形式为“LoadModule name moduleName”的变量。
新行:“LoadModule new_module module / mod_newmod.so”
我的文件input.conf
abc def xyz
LoadModule foo_module libexec/mod_fooa.so
LoadModule proxy_module libexec/mod_proxy.so
LoadModule lmn_module libexec/mod_abc.so
LoadModule xyz_module libexec/mod_def.so
ExtendedStatus controls whether Apache will generate "full" status
和结果:
abc def xyz
LoadModule foo_module libexec/mod_fooa.so
LoadModule proxy_module libexec/mod_proxy.so
LoadModule lmn_module libexec/mod_abc.so
LoadModule xyz_module libexec/mod_def.so
LoadModule new_module module/mod_newmod.so
ExtendedStatus controls whether Apache will generate "full" status
在LoadModule段的最后插入一行新行“LoadModule new_module module / mod_newmod.so”。 请为此建议一个解决方案。非常感谢。
答案 0 :(得分:2)
@echo off
setlocal
set "file=test.txt"
set "here="
for /f "delims=:" %%A in ('findstr /lnbc:"LoadModule" "%file%" 2^>nul') do set here=%%A
if defined here (
>"%file%.new" (
for /f "tokens=1* delims=:" %%A in ('findstr /n "^" "%file%"') do (
echo(%%B
if %%A==%here% echo(LoadModule new_module module/mod_newmod.so
)
)
move /y "%file%.new" "%file%"
)
type "%file%"
此解决方案假设您的所有行都不以:
开头。如果任何行以:
开头,则需要使用不同的解决方案。
编辑 - 如果test.txt不存在或者test.txt不包含任何以“LoadModule”开头的现有行,则更新的答案无效。