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

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

本帖最后由 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
复制代码
在第一个=号前加了转义好像也无济于事
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  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
复制代码

QQ 20147578

TOP

回复 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

评分人数

TOP

返回列表