找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19074|回复: 2

[文本处理] [已解决]求助批处理替换文本问题

[复制链接]
发表于 2023-5-5 23:08:12 | 显示全部楼层 |阅读模式
本帖最后由 lonron 于 2023-5-8 00:33 编辑
  1. Location: https://media-zjhz-fy-person.zj6oss.ctyunxs.cn/PERSONCLOUD/96992c80-baea-459e-8589-50b1de713c51.exe?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=50&x-amz-UID=300000229870059&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%22%E7%9F%AD%E9%93%BE%E5%A4%A7%E5%B8%88.exe%22%3Bfilename*%3DUTF-8%27%27%25E7%259F%25AD%25E9%2593%25BE%25E5%25A4%25A7%25E5%25B8%2588.exe&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=bpItQBSlrZ9hwiZF%2BzB8eokXzi4%3D&x-amz-SHID=1250015256399&Expires=1683296898&x-amz-FSIZE=600576&x-amz-UFID=32431164142952114
复制代码
将以上保存在 test.txt 内容中的 &x-amz-limitrate=50 删除


我用下面的这个方式没成功,不知道哪里写错了
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (test.txt) do (
  4.     set "var=%%i"
  5.     set "var=!var:&x-amz-limitrate=50=!"
  6. )
  7. echo !var!
  8. pause
复制代码
在第一个=号前加了转义好像也无济于事

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-5-6 05:54:58 | 显示全部楼层
  1. rem 另存为 ANSI 编码
  2. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" %* & pause & exit

  3. Dim oWshShell, oFSO, oStream, s

  4. Const file    = "test.txt"    '原文件。支持文件拖放,支持文件名作为命令行参数
  5. Const charset = "GBK"         '文件编码。支持Unicode和UTF-8

  6. Set oWshShell = CreateObject("WScript.Shell")
  7. Set oFSO = CreateObject("Scripting.FileSystemObject")
  8. s = oFSO.GetParentFolderName(WScript.ScriptFullname)
  9. oWshShell.CurrentDirectory = s

  10. Set oStream = CreateObject("ADODB.Stream")
  11. oStream.Type    = 2    'adTypeText
  12. oStream.Mode    = 3    'adModeReadWrite
  13. oStream.Charset = charset

  14. If WScript.Arguments.Count > 0 Then
  15.     For Each s In WScript.Arguments
  16.         Call run(s)
  17.     Next
  18. Else
  19.     Call run(file)
  20. End If

  21. Sub run(ByVal file)
  22.     Dim s
  23.     oStream.Open()
  24.     oStream.LoadFromFile file
  25.     s = oStream.ReadText()
  26.     oStream.Close()
  27.     s = RePlace(s, "&x-amz-limitrate=50", "")
  28.     WScript.Echo s
  29. End Sub
复制代码
发表于 2023-5-7 17:07:33 | 显示全部楼层
回复 1# lonron

这种文本类的处置,俺大多数时候习惯于用gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe

  1. gawk "{gsub(/&x-amz-limitrate=50/,"")}1" test.txt>Out_test.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
lonron + 1 感谢帮助

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 22:47 , Processed in 0.018988 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表