[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
路过...
楼主是台湾的朋友吗? 个人看繁体真的是不太习惯。
楼主说的建议很中肯。现在如果要解析xml 或者html,除非是文本又短又特别简单的需求,我才会用正则,其它我更愿意选择相应的解析库,各个语言应该基本都有相应的库。
关于伸手党的问题,我个人觉得就是现在大环境所致,现在的人大都比较浮躁,都比较想要快速达到目的,只注重结果,不注重过程,所有有些基础的东西,有人也不愿意去学,想直接知道结果。
话又说回来,现在论坛人气真的不高,我也相信bat一些东西用的人真的不多了。所以我感觉论坛版主对这方面也比较宽容的。

TOP

吃瓜群众:
老纳望着江面如织般的船只,曰:两人耳!
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

回复 17# cfwyy77_bat


    其实双击右上角繁体中文就好了

TOP

如鲠在喉、不吐不快。
凭什么使用正则处理 xml 文档要被扣上“滥用”之罪?
“一题多解”不是经常被我们大家提倡的吗?多一种解题方法和思路有坏处吗?
是因为正则不能解决 xml 文档问题?还是正则晦涩难懂?还是正则不合自己口味?
PowerShell脚本而已,首先是能够解决具体问题,然后才考虑效率、通用性、可读性等问题。
能够解决问题的方法,你完全可以不用,甚至不相信它能用,但不要轻易说它“滥”。

TOP

支持樓主。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 16# uhjjhjff11d


    这个是有原因的。样本是“非标准”的,<?xml version="1.0" ?>文件头都没有,第一步 [xml](type a.xml) 就行不通。说多了都是泪。

TOP

本帖最后由 uhjjhjff11d 于 2019-11-14 17:28 编辑

回复 22# WHY
29 樓的圖片顯示他手中的文檔是 xml沒錯。至於有沒有被他的正則匹配替換操作引入錯誤的內容,我就不知道了。其它人拿了錢,給出的代碼到了好幾版之後還是有 bug,那你要我說正則很適合搞 xml,我還真不認同。
100元人民币 求bat或Powershell处理文本内容【已解决】

  • 20 樓 26樓代碼更新。29樓 bug
  • 31 樓代碼更新,32樓 bug
  • 40 樓代碼更新,41 樓 bug,導致手機無法開機。(他不會在虛擬機上面測試嗎?)
  • 47 樓的回覆......他以為變量換名就是混倄器了......100元的代碼 vs Google 開源 project
  • 52 樓 56 樓代碼更新,59 樓 看起來匹配不能處理所有的更名
  • 60 樓代碼更新,63 樓 他還在想什麼 改名称为A~ZZZZ之间,本來就不應該這樣處理的,所以我說其他人也是誤導他居多

37樓就提到了應該直接用 api

43樓也提到了直接用 api

之前看到這些回覆就不會發帖了,因為我根本不想讀下面許多濫用正則,到處是 bug 的代碼。

TOP

我就看看 老了 唉

TOP

楼主出发点是好的,只是言辞可能有些过激,也是好心劝大家写 易读、高可靠、效率高的代码,正能量的帖子必须支持。
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 523066680 于 2019-11-8 16:57 编辑

回复 25# ivor

      主要是楼主没发现,smss 是个妹子
昂,原来只是QQ头像是女人而已,当我没说  (逃

TOP

希望各位有志之士可以在论坛大力推广PowerShell以及第三方命令行工具
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 23# uhjjhjff11d


    hi,你说的这个帖子我全程参与过,我有发言权。
问题的关键不在于使用正则合不合适,而在于提问者对问题的描述不到位,以及提问者的需求一直在变化。
就是说,修改属性值的过滤条件连他自己事先都不清楚,发现不对就更新需求,摸石头过河,走一步看一步。
连人都无法预知的问题,提问者反而让脚本事先做预判。
我认为脚本不适合干这个,几次修改后我就放弃了。

我猜你很会写 PowerShell 脚本,贴一个完美版让大家都学习一下吧。

另外,所谓的 bug 你多站在脚本编写者的角度看看,多数楼层的答案在需求不再变化的时候已经满足了要求,这算bug吗?

TOP

dom与re各有利弊:dom方便易操作,而re效率高,尤其对于大量大型xml文件,dom每次创建和释放占用很多时间,re速度快;测试过,同样文件,re约为dom时间的1/3
不过对于大型xml文件,不应使用dom,而使用xmltextreader
微信:flashercs
QQ:49908356

TOP

本帖最后由 uhjjhjff11d 于 2019-11-9 11:13 编辑

回复 28# WHY
我猜你很会写 PowerShell 脚本,贴一个完美版让大家都学习一下吧。

你猜錯了,我不是程序員,也不是編程高手。

所谓的 bug 你多站在脚本编写者的角度看看,多数楼层的答案在需求不再变化的时候已经满足了要求,这算bug吗?

代碼把不是變量的東西也替換掉了
如果變量後面有數字就失效

回复 7# WHY 写的太棒了
有个小问题可以处理下吗 就是其中有数组时共用同一个名称是要替换成同名称的 虽然也替换成同名了 单生成的XTX文本 可以被读取 但部分功能不在
说明 混编时还是有问题


其中一段代碼。
  1. @echo off
  2. PowerShell "$h=@{};$s=[regex]::Replace([IO.File]::ReadAllText('a.txt',[Text.Encoding]::Default),'(?<=\bname=\")[^^\"]+(?=\")',{param($m);$a=$m.Value;if(!$h.ContainsKey($a)){$x=[Math]::floor($global:n/26);if(!$x){$c=''}else{$c=[char](64+[int]$x)};$h[$a]=$c+[char](65+$global:n++%%26)};$h[$a]});$s=[regex]::Replace($s, '(?^<=\")[^\"@#]*[@#][^^\"]+(?=\")',{param($m);$a=$m.Value;forEach($k In $h.Keys){$a=$a.Replace('@'+$k,'@'+$h[$k]).Replace('#'+$k,'#'+$h[$k])};$a});sc b.txt -Value $s -Enc utf8"
  3. pause
复制代码

TOP

回复 27# Batcher


    您可以开一个FFMPEG专区吗?
现在各种视频、直播那么火,
FFMPEG作为行内的领头开源软件/框架,
命令行版本也有许多人想学习。

TOP

返回列表