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

[文本处理] [已解决]求修改PowerShell添加过滤条件

本帖最后由 smss 于 2019-7-12 12:36 编辑
  1. PowerShell "$s=[IO.File]::ReadAllText('8.xml', [Text.Encoding]::UTF8) -replace '(?<!<[^<>\s]+)\s+'; sc 8.xml $s -Enc UTF8"
复制代码
以<ContentProviderBinder为节点则不修改如下例子
<ContentProviderBinder name="missed_calls" uri="content://call_log/calls" columns="date,number,name,type,duration" order="date DESC" where="type=3 AND new=1" countName="call_count"/>

能用 感觉改的不太对
  1. @echo off
  2. PowerShell "$str=[IO.File]::ReadAllText('a.xml',[Text.Encoding]::UTF8) -replace '<!--(?:(?!-->).)*-->'; $str=[regex]::Replace($str, '<(?!ContentProviderBinder\s)[^<>]*>', {param($m);$s=$m.Value;$s -replace '(?<!<[^<>\s]+)\s+'}); [IO.File]::WriteAllText('b.xml', $str, [Text.Encoding]::UTF8)"
  3. pause
复制代码

  1. PowerShell "$s=[IO.File]::ReadAllText('1.xml', [Text.Encoding]::UTF8) -replace '(?<!<(?:ContentProviderBinder[^<>]+|[^<>\s]+))\s+'; sc 2.xml $s -Enc UTF8"
复制代码
1

评分人数

    • smss: 大神还是大神,我还是这么菜技术 + 1

TOP

本帖最后由 smss 于 2019-7-12 12:38 编辑
你应该给一个样本文件,说清楚需要修改哪些地方,
作为对比,修改之前是什么样子,修改之后又是什么样子, ...
WHY 发表于 2019-7-12 10:56

样本如下
  1. <ContentProviderBinder name="weather" uri="content://weather/weather" columns="city_id">
  2. <Variable name="city_id" type="string" column="city_id"/>
  3. </ContentProviderBinder>
复制代码
需要生成如下
  1. <ContentProviderBinder name="weather" uri="content://weather/weather" columns="city_id"><Variable name="city_id"type="string"column="city_id"/></ContentProviderBinder>
复制代码
以<ContentProviderBinder节点则不修改,删除所有空白字符,包括回车换行符,但保留每个节点后的空格。
目前是没有删除回车换行符

TOP

你应该给一个样本文件,说清楚需要修改哪些地方,
作为对比,修改之前是什么样子,修改之后又是什么样子,一看便知,不然只能靠猜。
谁闲的没事会去猜测你的意图?

TOP

返回列表