Board logo

标题: [文本处理] 请问批处理命令findstr查询到某行删除 [打印本页]

作者: yunyan100    时间: 2018-11-2 19:47     标题: 请问批处理命令findstr查询到某行删除

各位好,又有个问题请教下,如果是将txt中查询到某行删除,没有扩展名没问题,但如果是有扩展名比如exe,就做不了.请指教!
  1. findstr /v "%pa%" %dp%\Dell.txt>%dp%\#&move %dp%\# %dp%\Dell.txt
复制代码
  1. "F:\Downloads\FileRecycle.exe"
  2. "F:\Downloads\maytools"
复制代码

作者: Batcher    时间: 2018-11-2 20:41

能否详细说说什么是“有扩展名就做不了”?
作者: yunyan100    时间: 2018-11-2 21:11

本帖最后由 yunyan100 于 2018-11-2 21:15 编辑

回复 2# Batcher

首先感谢,就是Dell.txt中查找有没有变量(就是文本),如果查找到就删除Dell.txt中的一行,其他不变.
  1. "F:\Downloads\FileRecycle"
复制代码
可删除
  1. "F:\Downloads\FileRecycle.exe"
复制代码
删除不了
作者: yhcfsr    时间: 2018-11-2 21:14

不是扩展名的问题,findstr默认正则匹配,路径中的\被解析成转义符,点号(.)被解析成通用匹配字符(代表任意单个字符).
改用下列命令试试:
  1. findstr /v /c:"%pa%" %dp%\Dell.txt>%dp%\#&move %dp%\# %dp%\Dell.txt
  2. findstr /v /l "%pa%" %dp%\Dell.txt>%dp%\#&move %dp%\# %dp%\Dell.txt
  3. find /v "%pa%" %dp%\Dell.txt>%dp%\#&move %dp%\# %dp%\Dell.txt
复制代码

作者: yunyan100    时间: 2018-11-2 21:34

回复 4# yhcfsr

如何检查的中文件夹路径,就全没了,还显示不需好的,如何是文件一次删除一个,但显示的多余的
作者: yunyan100    时间: 2018-11-2 21:47

回复 4# yhcfsr
  1. findstr /v /c:"%pa%" %dp%\Dell.txt>%dp%\#&move %dp%\# %dp%\Dell.txt
复制代码
可用这句基本不显示多余的,也可删除行exe,但文件夹就全删除了
作者: yhcfsr    时间: 2018-11-2 22:01

本帖最后由 yhcfsr 于 2018-11-2 22:03 编辑

回复 6# yunyan100
  1. findstr /v /c:"\"%pa%\"" %dp%\Dell.txt>%dp%\#&move %dp%\# %dp%\Dell.txt
复制代码
显示多余的,应该是用了find命令吧,不想要多余的话,这样用:
  1. find /v "%pa%"<"文件路径"
复制代码
没有样本,只有你一个一个试了,看哪个行
下次发贴,最好发个具有代表性的样本,最好的办法是加论坛QQ群,比在这问快速直接.
作者: yunyan100    时间: 2018-11-2 22:08

回复 7# yhcfsr


上面一条完美达到,谢谢
作者: yunyan100    时间: 2018-11-2 22:19

回复 8# yunyan100
谢谢你的提醒




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2