输出的是空白文件
时间: 2024-02-11 21:03:47 浏览: 26
抱歉,我的回复中漏写了一些关键的信息。在第二条命令中,需将处理后的每一行输出到一个临时文件中,最后再将该临时文件重命名为输出文件,如下所示:
```batch
@echo off
setlocal enabledelayedexpansion
set input_file=input.txt
set output_file=output.txt
rem 删除文本中所有“this is sample text”所在行
findstr /v /c:"this is sample text" %input_file% > %output_file%
rem 删除“ Total users :”,并将其所在行中的文本提至上一行尾
(for /f "usebackq tokens=*" %%a in ("%output_file%") do (
set "line=%%a"
set "prev_line=!line!"
set /p "line="
if "!prev_line:Total users=!" == "!prev_line!" (
echo !prev_line!
) else (
set "prev_line=!prev_line:Total users=!"
set "prev_line=!prev_line:~0,-1!"
echo !prev_line!
)
)) > %output_file%.tmp
move /y %output_file%.tmp %output_file%
rem 按顺序执行第三条命令
rem ...
endlocal
```
注意,这里使用了 `endlocal` 命令结束了 `setlocal` 命令所开启的局部环境变量设置,避免对其他程序产生影响。如果需要在第三条命令中继续使用环境变量,需在该命令前加上 `setlocal` 命令重新开启局部环境变量设置。