Board logo

标题: [文本处理] 【已解决】如何用bat把xml里的部分内容转移到另一个xml里面。 [打印本页]

作者: ttrrf    时间: 2013-9-9 15:48     标题: 【已解决】如何用bat把xml里的部分内容转移到另一个xml里面。

我这里有dimens.xml,dimens1.xml两个文件,dimens1.xml的内容里带红色的文字复制或者移动到dimens.xml文件里面然后再删除dimens1.xml。这又如何实现呀?麻烦大大帮忙?
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="config_icon_width">60.0dip</dimen>
    <dimen name="config_icon_height">60.0dip</dimen>
    <dimen name="workspace_cell_padding_bottom">18.0dip</dimen>
    <dimen name="workspace_widget_padding_top">0.0dip</dimen>
    <dimen name="workspace_widget_padding_bottom">17.0dip</dimen>
    <dimen name="workspace_widget_cell_min_height">85.0dip</dimen>
   
<dimen name="workspace_padding_top">3.0dip</dimen>
    <dimen name="workspace_padding_side">8.5dip</dimen>   
<dimen name="workspace_margin_bottom">83.0dip</dimen>
    <dimen name="hotseats_padding_side">7.0dip</dimen>
    <dimen name="hotseats_padding_bottom">0.0dip</dimen>
    <dimen name="hotseats_height">90.0dip</dimen>
    <dimen name="folder_preview_top_margin">6.0dip</dimen>
    <dimen name="folder_content_margin_bottom">13.0dip</dimen>
    <dimen name="folder_content_margin_top">13.0dip</dimen>
    <dimen name="icon_title_padding_bottom">8.0dip</dimen>
    <item type="dimen" name="workspace_icon_text_shadow_radius">2.0</item>
    <item type="dimen" name="workspace_icon_text_shadow_dx">0.0</item>
    <item type="dimen" name="workspace_icon_text_shadow_dy">1.0</item>
    <dimen name="free_style_apps_btn_text_size">11.0sp</dimen>
    <dimen name="workspace_cell_padding_bottom_min">13.0dip</dimen>
    <dimen name="workspace_seekbar_height">10.0dip</dimen>
    <dimen name="folder_preview_width">48.0dip</dimen>
    <dimen name="folder_preview_height">48.0dip</dimen>
    <dimen name="folder_header_padding_left">10.0dip</dimen>
    <dimen name="folder_header_padding_right">14.0dip</dimen>
    <dimen name="folder_header_padding_bottom">3.0dip</dimen>
    <dimen name="workspace_icon_text">12.0sp</dimen>
    <dimen name="weather_city_text_size">13.0dip</dimen>
    <dimen name="weather_aqi_text_size">13.0dip</dimen>
    <dimen name="weather_date_text_size">13.0dip</dimen>
</resources>
作者: 林小七    时间: 2013-9-9 17:02

发现最近你和XML杠了,哈哈
作者: ttrrf    时间: 2013-9-9 17:08

回复 2# 林小七

是呀!你会吗?交流下吧!
作者: ttrrf    时间: 2013-9-13 16:50

各位大大,帮个忙行吗?很急呀!
作者: DAIC    时间: 2013-9-13 20:55

  1. @echo off
  2. more +5 "%~f0" > dimens.xml
  3. del /f /q /a dimens1.xml
  4. goto :eof
  5. <dimen name="workspace_widget_padding_top">0.0dip</dimen>
  6. <dimen name="workspace_widget_padding_bottom">17.0dip</dimen>
  7. <dimen name="workspace_widget_cell_min_height">85.0dip</dimen>
  8. <dimen name="workspace_padding_side">8.5dip</dimen>
  9. <dimen name="hotseats_padding_side">7.0dip</dimen>
  10. <dimen name="workspace_icon_text">12.0sp</dimen>
复制代码

作者: ttrrf    时间: 2013-9-14 23:49

回复 5# DAIC


    这个代码不行呀,dimens.xml里怎么只有这6行呀!其它的内容要一项都不能少的呀!可能是我没有说清楚。要保留原dimens.xml内的所有内容。再多出从dimens1.xml移动过来的那6行的。
作者: weichenxiehou    时间: 2013-9-15 08:40

回复 6# ttrrf
真为楼主的表述着急,可能跟你不懂批处理编程有关吧,你要复制的这些行在第二个文件中有何规律?是固定在这些行吗?还是说内容本身就是固定的?如果本身就是固定的,那就没必要说在第二个文件中了。复制到第一个文件,是覆盖掉原内容,还是追加到文件尾?这个帖子能拖到现在,跟你表述不清有很大关系。至少我第一次看到的时候是直接略过了…
作者: ttrrf    时间: 2013-9-15 20:42

回复 7# weichenxiehou


    是这样的,你把我压缩包里两个文件进行对比,你就知道了。我是要把其中一个文件里的独立的项移到另一个文件里。当然手动是没问题,我是想用bat自动修改下,省点力的。
作者: apang    时间: 2013-9-15 21:52

  1. @echo off
  2. (for /f "delims=>" %%a in (dimens.xml) do echo,%%a)>$
  3. (for /f "delims=>" %%a in (dimens1.xml) do echo,%%a)>$1
  4. findstr /ivxg:$ $1>$2
  5. findstr /ig:$2 dimens1.xml>>dimens.xml
  6. del $*
  7. pause
复制代码

作者: ttrrf    时间: 2013-9-16 21:46

回复 9# apang

这位兄台的代码可以把独立项转到另一个文件里面,但是你看看:
   <?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="config_icon_width">68.0dip</dimen>
    <dimen name="config_icon_height">68.0dip</dimen>
    <dimen name="workspace_cell_padding_bottom">35.0dip</dimen>
    <dimen name="workspace_padding_top">11.0dip</dimen>
    <dimen name="workspace_margin_bottom">100.5dip</dimen>
    <dimen name="hotseats_padding_bottom">7.0dip</dimen>
    <dimen name="hotseats_height">98.0dip</dimen>
    <dimen name="folder_preview_top_margin">8.5dip</dimen>
    <dimen name="folder_content_margin_bottom">2.0dip</dimen>
    <dimen name="folder_content_margin_top">2.0dip</dimen>
    <dimen name="icon_title_padding_bottom">0.0dip</dimen>
    <item type="dimen" name="workspace_icon_text_shadow_radius">2.0</item>
    <item type="dimen" name="workspace_icon_text_shadow_dx">0.0</item>
    <item type="dimen" name="workspace_icon_text_shadow_dy">3.8</item>
    <dimen name="free_style_apps_btn_text_size">13.0sp</dimen>
    <dimen name="hotseats_padding_top">0.0dip</dimen>
    <dimen name="workspace_icon_text_size">13.0sp</dimen>
    <dimen name="workspace_cell_padding_bottom_min">25.0dip</dimen>
    <dimen name="workspace_seekbar_height">20.0dip</dimen>
    <dimen name="folder_preview_width">51.0dip</dimen>
    <dimen name="folder_preview_height">51.0dip</dimen>
    <dimen name="folder_header_padding_left">23.0dip</dimen>
    <dimen name="folder_header_padding_right">24.0dip</dimen>
    <dimen name="folder_header_padding_bottom">8.0dip</dimen>
    <dimen name="weather_city_text_size">14.0dip</dimen>
    <dimen name="weather_aqi_text_size">14.0dip</dimen>
    <dimen name="weather_date_text_size">14.0dip</dimen>
</resources>
    <dimen name="workspace_widget_padding_top">0.0dip</dimen>
    <dimen name="workspace_widget_padding_bottom">17.0dip</dimen>
    <dimen name="workspace_widget_cell_min_height">85.0dip</dimen>
    <dimen name="workspace_padding_side">8.5dip</dimen>
    <dimen name="hotseats_padding_side">7.0dip</dimen>
    <dimen name="workspace_icon_text">12.0sp</dimen>

红色的没有放入<resources>-----</resources>之中,这个也就等于没用的。决定出错的。
作者: apang    时间: 2013-9-17 00:36

所谓“带红色的文字复制或者移动到dimens.xml文件里面”,那么复制到开头、结尾或者中间都可以,你为何妄言“出错”?
作者: ttrrf    时间: 2013-9-17 05:52

本帖最后由 ttrrf 于 2013-9-17 05:58 编辑

回复 11# apang


    对了,这是手机里面apk反编译出来的资源文件,有严格的定义,稍有点位置不对或者没有定义在该有的位置就无发回编回apk安装包的。麻烦大大再改下代码,使移动到中间位置也就是resources>-----</resources>之中的任何位置,不胜感激!
作者: apang    时间: 2013-9-17 10:49

  1. @echo off
  2. (for /f "delims=>" %%a in (dimens.xml) do echo,%%a)>$
  3. (for /f "delims=>" %%a in (dimens1.xml) do echo,%%a)>$1
  4. findstr /ivxg:$ $1>$2
  5. (for /f "delims=" %%a in (dimens.xml) do (
  6.     if /i "%%a"=="</resources>" findstr /ig:$2 dimens1.xml
  7.     echo,%%a
  8. ))>$
  9. move $ dimens.xml
  10. del $* dimens1.xml
  11. pause
复制代码

作者: ttrrf    时间: 2013-9-17 11:41

回复 13# apang


    感谢大大,我晚上回去测试!能否留下QQ号,好联系哈!
作者: Batcher    时间: 2013-9-17 15:42

回复 14# ttrrf


    有问题就在论坛上面讨论吧,这样也好给其他人一个学习的机会。
作者: ttrrf    时间: 2013-9-17 22:39

回复 13# apang

这下对了,感谢大大,像你学习。。。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2