批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文本处理] [已解决]如何批处理删除文本指定符号间内容

本帖最后由 smss 于 2019-5-16 13:36 编辑

需要处理内容如下
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Lockscreen version="1" frameRate="20" screenWidth="720" displayDesktop="true" extraResourcesScreenWidth="720,1080" extraScaleByScreenWidth="1080:1.5">
  3. <!--绑定-->
  4. <VariableBinders>
  5. <!--电话-->
  6. <ContentProviderBinder name="missed_calls" uri="content://call_log/calls" columns="date,number,name,type,duration" order="date DESC" where="type=3 AND new=1"
  7. countName="call_count">
  8. <Variable name="call_name1" type="string" column="name" row="0"/>
  9. <Variable name="call_number1" type="string" column="number" row="0"/>
  10. <Variable name="call_date1" type="long" column="date" row="0"/>
  11. <varibale name="call_type1" type="integer" column="type" row="0"/>
  12. <Variable name="duration_time1" type="long" column="duration" row="0"/>
  13. <Variable name="call_name2" type="string" column="name" row="1"/>
  14. <Variable name="call_number2" type="string" column="number" row="1"/>
  15. <Variable name="call_date2" type="long" column="date" row="1"/>
  16. <varibale name="call_type2" type="integer" column="type" row="1"/>
  17. <Variable name="duration_time2" type="long" column="duration" row="1"/>
  18. </ContentProviderBinder>
  19. </Lockscreen>
复制代码
需要去除(包含符号)<!--之间内容--> 如 “<!--绑定-->”
颠倒代码中各元素位置 只保留首个元素不变
如<Lockscreen version="1" frameRate="20" screenWidth="720" displayDesktop="true" extraResourcesScreenWidth="720,1080" extraScaleByScreenWidth="1080:1.5">
   <Lockscreen extraScaleByScreenWidth="1080:1.5" extraResourcesScreenWidth="720,1080"  displayDesktop="true" screenWidth="720" frameRate="20" version="1">
将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式
目前只去除了换行符号
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('type "1.txt"') do (
  4.     set /p =%%i<nul
  5. ))>"2.txt"
复制代码

用PS 创建数组,然后再倒置一下就行了。 。。
$a='<Lockscreen version="1" frameRate="20" screenWidth="720" displayDesktop="true" extraResourcesScreenWidth="720,1080" extraScaleByScreenWidth="1080:1.5">';
[System.Collections.ArrayList]$b = $a -split '\s+';
$ref=$b[0];
$b.RemoveAt(0);
$b.Reverse();
$ref + ' ' + ($b -join ' ');

TOP

本帖最后由 smss 于 2019-5-13 10:56 编辑

回复 2# xczxczxcz
对PS是一点也不懂的能不能给个具体的

改成这样输出 一个相同的
  1. $str = [IO.File]::ReadAllText('manifest.xml', [Text.Encoding]::Default);
  2. [System.Collections.ArrayList]$b = $str -split '\s+';
  3. $ref=$b[0];
  4. $b.RemoveAt(0);
  5. $b.Reverse();
  6. $ref + ' ' + ($b -join ' ');
  7. [IO.File]::WriteAllText('manifest2.xml', '  ' + $str, [Text.Encoding]::Default)
复制代码

TOP

返回列表