[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助怎样用批处理命令删除文本中指定字符所在整行

111111
222222
333333

用批处理删除带22的整行,删除后的结果是这样:

111111
333333

这个批处理要删除"文本.txt"中的22所在的整行,必须直接在原文本中执行,不输出另一个新文件。
zhidao.baidu.com/question/73870756.html中有一个答案,我修改了一下:
  1. set var=22
  2. for /f "delims=" %%i in ('dir /b/s/a-d "文本.txt"') do (
  3. findstr /v "%var%" "%%i" >"%%~dpni.new"
  4. del /q "%%i"
  5. ren "%%~dpni.new" "%%~ni.txt"
  6. )
复制代码
我试了一下,好像不能用变量,如果把"22"换成如"%var%"却把%var%本身作为查找内容,
请高手帮忙改进一下,谢谢!

  1. findstr /vc:"22" "文本.txt" > .temp & move /y .temp "文本.txt"
复制代码

TOP

代码精练了很多,我更想要的是:
  1. set var=22
  2. findstr /vc:"%var%" "文本.txt" > .temp & move /y .temp "文本.txt"
复制代码
依然成立

在findstr中可以使用用变量
高手帮帮可以吗?

TOP

回复 3楼 的帖子

  1. set var=22
  2. findstr /vc:"%var%" "文本.txt" > .temp & move /y .temp "文本.txt"
复制代码
这个代码可以呀。
(*^_^*)

TOP

sorry,当时看走眼,谢谢大家

TOP

算了,你们的都太复杂了
@echo off
for /f "eol=2" %%i in (text.txt) do echo  %%i
pause
TEXT文件中就写入你的三组数
1111111
2222222
3333333

TOP

返回列表