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

[问题求助] PowerShell如何防止在管道中未匹配则不输出

[复制链接]
发表于 2022-1-27 10:25:56 | 显示全部楼层 |阅读模式
下面的代码, 如果a.txt中没有空行, 或没有行中包含: 或,  则最后不能生成ok.txt, 如何自始至终都生成ok.txt?
另外, 第2行和第3行和第4行能合并写在一起吗?
  1. gc -Encoding UTF8 "C:\Users\Administrator\Desktop\a.txt" |
  2. ? { $_.trim() -ne "" } | #排除空行
  3. ? { $_.trim() -notmatch ":" } | #排除包含:的行
  4. ? { $_.trim() -notmatch "," } | #排除包含,的行
  5. sc -Encoding UTF8 "C:\Users\Administrator\Desktop\ok.txt"
复制代码
发表于 2022-1-27 11:28:30 | 显示全部楼层
  1. (gc a.txt) -notmatch '^\s*$|[:,]'
复制代码

评分

参与人数 1技术 +1 收起 理由
5i365 + 1 牛X

查看全部评分

 楼主| 发表于 2022-1-27 12:11:39 | 显示全部楼层
本帖最后由 5i365 于 2022-1-27 12:14 编辑

回复 2# idwma


我在前面加了个替换删除空格, 奇怪, 有时能输出, 有时输出不了, 下面这两行代码, 在我的电脑上无法生成ok.txt, 删除替换也不行, 真是怪了, ps5.1
a.lrc
https://send.cm/d/8FoA

(gc "C:\Users\Administrator\Desktop\a.lrc") -replace '\s{1,}' -notmatch '^\s*$|[:,【]' |
sc -Encoding UTF8 "C:\Users\Administrator\Desktop\ok.txt"
 楼主| 发表于 2022-1-27 14:01:13 | 显示全部楼层
回复 4# idwma


    不好意思, 没有密码, https://send.cm/d/8GS6
发表于 2022-1-27 14:12:33 | 显示全部楼层
回复 3# 5i365


    每一行都有:号当然不显示了
 楼主| 发表于 2022-1-27 14:32:59 | 显示全部楼层
回复 5# idwma


明白了, 多谢指点!!!

能让那些匹配先后执行吗? 我原本是想把 [XXXX] 先删掉,然后再执行上面命令的操作
发表于 2022-1-27 14:54:50 | 显示全部楼层
  1. (gc "C:\Users\Administrator\Desktop\a.lrc") -replace '\[.*\]' -notmatch '^\s*$|[:,【]' |
  2. sc -Encoding UTF8 "C:\Users\Administrator\Desktop\ok.txt"
复制代码
 楼主| 发表于 2022-1-27 15:11:44 | 显示全部楼层
回复 7# idwma


    多谢, 这回稳了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:09 , Processed in 0.019982 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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