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

sed 的d命令在批处理中出错一例,不知道哪里错了

【要求】将2.txt中的属于注册表键的行保留,其它行删除。

2.txt内容如下:
  1. 搜索结束: 找到 0 匹配。
  2. 搜索结束: 找到 0 匹配。
  3. 搜索结束: 找到 0 匹配。
  4. 搜索结束: 找到 0 匹配。
  5. 搜索结束: 找到 0 匹配。
  6. 搜索结束: 找到 0 匹配。
  7. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OfficeScanNT
  8. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\tmeevw\Parameters\Sentry\Products\OfficeScan
  9. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\tmusa\Parameters\Sentry\Products\OfficeScan
  10. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\tmeevw\Parameters\Sentry\Products\OfficeScan
  11. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\tmusa\Parameters\Sentry\Products\OfficeScan
  12. 搜索结束: 找到 5 匹配。
  13. 搜索结束: 找到 0 匹配。
  14. HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro
  15. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TrendMicro
  16. 搜索结束: 找到 2 匹配。
  17. 搜索结束: 找到 0 匹配。
  18. 搜索结束: 找到 0 匹配。
  19. 搜索结束: 找到 0 匹配。
  20. 搜索结束: 找到 0 匹配。
  21. 搜索结束: 找到 0 匹配。
  22. 搜索结束: 找到 0 匹配。
复制代码
bat代码如下:
  1. type 2.txt|sed "/^HKEY_/!d">1.txt
复制代码
结果,运行bat后,得到的结果中,只有“搜索结束:找到N匹配”的行,而不是需要的结果
但是直接在cmd窗口测试,则能返回正确结果。

目前,只能在bat中使用type 2.txt|sed -n "/^HKEY_/p">1.txt,可以实现预定效果

【疑惑】为什么在批处理中使用!d得到的结果不正确,而在cmd中正确呢?
说明:操作系统为windows7 64位,sed.exe版本为4.4,是从http://www.bathome.net/s/tool/index.html下载的

本帖最后由 0000 于 2018-12-15 14:58 编辑

在批处理中是否有一行:

      setlocal enabledelayedexpansion


如果有,多加个 ^


      type 2.txt|sed "/^HKEY_/^!d">1.txt

TOP

返回列表