标题: [其他] 求助:批处理删除.xml第3行的指定字符 [打印本页]
作者: hfstar 时间: 2021-5-7 22:35 标题: 求助:批处理删除.xml第3行的指定字符
批处理怎么删除下面文本的第3行的 Flags="94865933687447",其中的94865933687447是随机的,其他的保留,请各位大佬帮忙看看,这个批处理怎么做?
<?xml version="1.0" encoding="UTF-8"?>
<!-- Produced by Beyond Compare 4 from Scooter Software -->
<BCSessions Flags="94865933687447" Version="1" MinVersion="1">
<TSessionFolder>
<Items>
<TSessionFolder>
<Items>
<TDirCompareSession Value="Win7x64">
<LastModified Value="2020-12-08 14:10:54"/>
<Specs>
<Left Value="C:\Users\Administrator\Desktop\Win7x64"/>
<Right Value="C:\Users\Administrator\Desktop\Win7x64Qd\Win7x64"/>
</Specs>
</TDirCompareSession>
作者: newswan 时间: 2021-5-8 03:24
确定是第三行- sed.exe -r -e "3 s'[0-9]+''" -i *.xml
复制代码
作者: qixiaobin0715 时间: 2021-5-8 06:46
本帖最后由 qixiaobin0715 于 2021-5-8 08:17 编辑
不用第三方也行,稍微复杂点- @echo off
- for /f "delims=" %%i in (test.xml) do (
- set "str=%%i"
- setlocal enabledelayedexpansion
- if "!str: Flags=!"=="!str!" (
- echo,!str!
- ) else (
- for /f "tokens=1,3* delims= " %%a in ("!str!") do echo,%%a %%b %%c
- )
- endlocal
- )
- pause
复制代码
作者: hfstar 时间: 2021-5-8 06:49
回复 2# newswan
非常感谢
作者: hfstar 时间: 2021-5-8 06:49
回复 3# qixiaobin0715
O(∩_∩)O谢谢
作者: hfstar 时间: 2021-5-8 07:36
回复 3# qixiaobin0715
大佬,你能不能再简化一下代码,也行成功了,却提示已达最大递归层。
作者: qixiaobin0715 时间: 2021-5-8 08:18
回复 6# hfstar
奥,多写了一个右括号,已修改。
作者: hfstar 时间: 2021-5-8 10:11
回复 7# qixiaobin0715 O(∩_∩)O~,好的。
作者: minase 时间: 2021-5-8 16:44
回复 1# hfstar
贴的这个xml内容完整吗? 为啥标签没有配对好?
xml是取自于beyondcompare软件吗?
作者: xczxczxcz 时间: 2021-5-8 17:24
来个正统一点方法- $file = "$(gl)\aaa.xml";
- $xml = New-Object System.Xml.XmlDocument;
- $xml.Load($file);
- $xml.DocumentElement.RemoveAttribute("Flags");
- $xml.Save($file);
复制代码
作者: hfstar 时间: 2021-5-9 10:46
回复 9# minase
是没有贴完整
作者: hfstar 时间: 2021-5-9 10:47
回复 10# xczxczxcz 多谢多谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |