|
|
楼主 |
发表于 2019-11-8 23:56:59
|
显示全部楼层
本帖最后由 uhjjhjff11d 于 2019-11-9 11:13 编辑
回复 28# WHY
我猜你很会写 PowerShell 脚本,贴一个完美版让大家都学习一下吧。
你猜錯了,我不是程序員,也不是編程高手。
所谓的 bug 你多站在脚本编写者的角度看看,多数楼层的答案在需求不再变化的时候已经满足了要求,这算bug吗?
代碼把不是變量的東西也替換掉了
如果變量後面有數字就失效
回复 7# WHY 写的太棒了
有个小问题可以处理下吗 就是其中有数组时共用同一个名称是要替换成同名称的 虽然也替换成同名了 单生成的XTX文本 可以被读取 但部分功能不在
说明 混编时还是有问题
其中一段代碼。- @echo off
- 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"
- pause
复制代码[quote]回复 7# WHY
有如下几个问题
1.名称中不要出现运算符号 如name="call_name1" 居然替换成了*或/
需要规避符号 +,-,*,/,%,**,|,||,=,==, !,not
2数组不能使用或许是上个问题导致 |
|