使用Batch Windows Scripting可以实现下面介绍的功能吗?如果是这样,我如何编辑我的代码来执行此功能?
我正在尝试从文件中删除多行字符串。多行字符串来自另一个文件,并被读入Batch变量。然后我读取目标文件并搜索这个多行字符串,如果它存在,我想从目标文件中删除它。
下面的代码无法从目标文件中删除多行字符串。它可以成功读取输入文件。 您能帮我编辑我的脚本以搜索和删除文件中的多行字符串吗?
@echo off &setlocal enabledelayedexpansion
Set replace=
Set target=
Set infile=usermenuTest1.4d
Set outfile=usermenuTest2.4d
Rem Read file and store all contents in string
for /f "delims=" %%i in (%infile%) do set "target=!target! %%i"
echo %target%
Rem Remove the target string from outfile
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1,* delims=¶" %%A in ( 'type "%outfile%"') do SET "string=%%A"
SET "modified=!string:%target%=%replace%!"
(echo(%modified%)>> "%outfile%"
ECHO.
PAUSE
ENDLOCAL
基本上我希望我的脚本从文件中删除以下粗体(文本内部**)文本:
// abc // def // hij **Menu "User" { Button "" { Walk_Right "" } }**
答案 0 :(得分:0)
试试这个:
@echo off & setlocal
Set "infile=usermenuTest1.4d"
Set "outfile=usermenuTest2.4d"
for /f "tokens=1*delims=:" %%i in ('^<"%infile%" findstr /n "^"') do (
echo(%%j|findstr /lc:"Menu \"User\"" >nul && set /a counter=6
set /a counter-=1
setlocal enabledelayedexpansion
if !counter! leq 0 (echo(%%j)>>"%outfile%"
endlocal
)