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

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

下面的代码, 如果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"
复制代码

  1. (gc a.txt) -notmatch '^\s*$|[:,]'
复制代码
1

评分人数

TOP

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

TOP

回复 4# idwma


    不好意思, 没有密码, https://send.cm/d/8GS6

TOP

回复 3# 5i365


    每一行都有:号当然不显示了

TOP

回复 5# idwma


明白了, 多谢指点!!!

能让那些匹配先后执行吗? 我原本是想把 [XXXX] 先删掉,然后再执行上面命令的操作

TOP

  1. (gc "C:\Users\Administrator\Desktop\a.lrc") -replace '\[.*\]' -notmatch '^\s*$|[:,【]' |
  2. sc -Encoding UTF8 "C:\Users\Administrator\Desktop\ok.txt"
复制代码

TOP

回复 7# idwma


    多谢, 这回稳了

TOP

返回列表