找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16822|回复: 2

[文本处理] 【已解决】cmd遇到怪事了,好多代码效果都乱了,求解决方法

[复制链接]
发表于 2021-12-17 11:50:56 | 显示全部楼层 |阅读模式
本帖最后由 aceamuro 于 2021-12-17 13:29 编辑

一开始出问题的是这个代码
  1. findstr /v "^$" "..\othernode.yml">"..\result.txt"
复制代码
本意是导出一个没有空行的文本,昨天之前效果都正常,今天莫名其妙就无效了,导出来的文本仍然是带空行的

然后发现这个代码又出毛病了
  1. findstr /v "No nodes were found" "%temp%\base64clash.c">>%temp%\base64clash.d
复制代码
语句跟上面那条一模一样,效果是输出一个文件,其中带有“No nodes were found”这几个字的行全部被删除。
也是昨天之前正常,今天就出了莫名其妙的毛病,仔细校对一下,发现删除的不只是带有"No nodes were found"这几个字符的行,
而是把所有单独带“nodes”、“no nodes”、“found”这些词的行也都删除了(怀疑跟第一条代码是同一个毛病)

因为根本不是什么困难的语句,就算我没基础也多少看得懂,可输出结果就是不对,实在找不出毛病
于是上网找能够替代以上命令相同效果的语句,又发现无论什么语句什么效果,但凡for后面带%%a的,cmd窗口中一律显示“此时不应有%%a”
试过好多个不同效果不同写法的语句全都这样,比如
  1. for /f %%a in ('dir /b/on %temp%\base64clash.c') do findstr /iv "No nodes were found" "%%a">>new%%a

  2. for /f "tokens=*" %%a in (%temp%\base64clash.c) do @echo %%a | find /v /i "No nodes were found!">>%temp%\base64clash.d
复制代码
不管效果是什么,只要带%%a就会一律提示“此时不应有%%a”

请问是代码的毛病还是我系统出毛病了?有办法解决吗?
发表于 2021-12-17 12:34:53 | 显示全部楼层
  1. 去除空行:
  2. findstr . a.txt>b.txt
  3. 过滤含有No nodes were found的行:
  4. findstr /v /c:"No nodes were found" a.txt>b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
aceamuro + 1 乐于助人

查看全部评分

 楼主| 发表于 2021-12-17 13:28:23 | 显示全部楼层
回复 2# qixiaobin0715
有效,非常感谢,还真是代码的问题吗?昨天之前都有效是巧合?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 19:09 , Processed in 0.017107 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表