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

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

本帖最后由 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”

请问是代码的毛病还是我系统出毛病了?有办法解决吗?

  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

评分人数

TOP

回复 2# qixiaobin0715
有效,非常感谢,还真是代码的问题吗?昨天之前都有效是巧合?

TOP

返回列表