0

我在下面描述的功能是否可以使用批处理 Windows 脚本?如果是这样,我该如何编辑我的代码来执行此功能?

我正在尝试从文件中删除多行字符串。多行字符串来自另一个文件并被读入 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 ""
   }
}**
4

1 回答 1

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
)
于 2013-05-01T01:08:38.110 回答