[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]用PowerShell替换字符写入变量循环执行?

本帖最后由 smss 于 2022-5-4 22:31 编辑

用PS脚本 抛砖引玉 期待大神
  1. $file1 = '1.wcs';  #修改前的文件
  2. $file2 = '2.wcs';  #修改后的文件
  3. (Get-Content $file1) | ForEach-Object {   
  4.     $_.replace('FORX *', 'FORX* ').replace('[ ', '[').replace(' ]', ']')
  5. } | Set-Content $file2
  6. (Get-Content $file2) | ForEach-Object {   
  7.     $_.replace('| EXEC', '|EXEC').replace(', EXEC', ',EXEC').replace('| EXIT', '|EXIT').replace(', EXIT', ',EXIT').replace('| CALL', '|CALL') #写的蹩脚 能写成变量循环执行吗
  8. } | Set-Content $file2
复制代码
1.wcs
  1. TEAM set a=1 | set b=2
  2. FIND [ %a%=1 | %b%=2 ], mess 1
  3. FORX * 1 2 3, i, TEAM set X=%i% | ENVI Y=%i%
  4. LABE ,L160T267W88H15,注册注销Dll
复制代码
希望得到 注意第4条这种不用替换
  1. TEAM set a=1|set b=2
  2. FIND [%a%=1 | %b%=2],mess 1
  3. FORX* 1 2 3,i,TEAM set X=%i%|ENVI Y=%i%
  4. LABE ,L160T267W88H15,注册注销Dll
复制代码

  1. (Get-Content $file1 -ReadCount 0)-replace'FORX +\*','FORX*'-replace' *([\[\]|,]) *','$1'|Set-Content $file2
复制代码
微信:flashercs
QQ:49908356

TOP

本帖最后由 smss 于 2022-5-4 10:47 编辑

回复 2# flashercs
"[ "空格是之后不是之前
[]中的|要过滤 能改改吗

TOP

  1. -replace'FORX +\*','FORX*'-replace'\[ +','['-replace' +\]',']'-replace'(\[[^]]*\])| +(?=\|)|(?<=\|) +','$1'-replace', +',','
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

回复 4# flashercs 变量中含有,  不修改
ENVI Z=CO., LTD
set X=CO., LTD1
FIND %a%=1, mess 1 ! mess 2改为FIND %a%=1, mess 1!mess 2
虽然加了-replace'! +','!'-replace' !','!'对PS不熟担心出错 还请教老师

TOP

返回列表