如何使用cmd脚本删除文本文件中特定行号的特定单词而不创建新文件?

时间:2017-10-27 17:36:47

标签: batch-file

我想使用cmd批处理文件删除文本文件中给定行号的特定单词。我不想创建一个新的输出文件,想在输入文件中进行修改。

例如,我有一个test.text文件,其中包含以下信息:

您好
你怎么样>
你能告诉我吗? 餐厅在哪里 在哪里附近
能不能再告诉我了 它在附近先生
谢谢

我想从第4,8行删除“where”,并从第6行删除“can”的第一次出现 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

此批处理文件正是您所要求的

@echo off
setlocal EnableDelayedExpansion

for /F "tokens=1* delims=:" %%a in ('findstr /N "^" test.txt ^& del test.txt') do (
   set "line=%%b"
   rem i wanted to delete "where" from line number 4
   if %%a equ 4 (
      set "line=!line:where =!"
   rem i wanted to delete "where" from line number 8
   ) else if %%a equ 8 (
      set "line=!line:where =!"
   rem and first occurence of "can" from line number 6.
   ) else if %%a equ 6 (
      set "line=!line:can can=can!"
   )
   echo !line! >> test.txt
)

嗯,也许唯一的疑问是,如果在第6行是第一个第二个"可以"被删除的词......