Board logo

标题: [文本处理] [已解决]批处理用(a.txt提供内容)替换文本(b.txt)里面指定内容 [打印本页]

作者: yyz219    时间: 2022-12-17 18:52     标题: [已解决]批处理用(a.txt提供内容)替换文本(b.txt)里面指定内容

问题完美解决:
  1. @echo off
  2. del 1.txt 2.>nul
  3. set /p M=<lnk路径.txt
  4. for /f "tokens=*" %%i in (快捷方式-模板.txt) do call :begin "%%i"
  5. start notepad 1.txt
  6. goto :eof
  7. :begin
  8. set var=%~1
  9. if defined var call set var=%%var:lnk路径=%M%%%
  10. if defined var echo %var%>>1.txt
复制代码

********************************************************
原来的问题:

1.现有批处理(替换文本指定内容.bat)(待修改)代码:
  1. @echo off
  2. del 1.txt
  3. set /p M=<lnk路径.txt
  4. for /f "tokens=*" %%i in (快捷方式-模板.txt) do call :begin ^"%%i^"
  5. start notepad 1.txt
  6. goto :eof
  7. :begin
  8. set var=%~1
  9. if defined var set var=%var:lnk路径=%%M%% %
  10. if defined var echo %var% >> 1.txt
复制代码
2.目的是:用 “lnk路径.txt” 里面的内容 去替换  “快捷方式-模板.txt” 里面的 lnk路径
3.快捷方式-模板.txt内容是:
  1. Set WshShell = WScript.CreateObject("WScript.Shell")
  2. set oShellLink = WshShell.CreateShortcut("lnk路径")
复制代码
4.lnk路径.txt里面的内容(变化的,可能有空格):
D:\桌面\Desktop\Dism++.lnk
***************************************************
5.运行批处理以后,1.txt内容:
  1. Set WshShell = WScript.CreateObject("WScript.Shell")D:\桌面\Desktop\Dism++.lnk
  2. set oShellLink = WshShell.CreateShortcut("")D:\桌面\Desktop\Dism++.lnk
复制代码
6.期待结果是:
  1. Set WshShell = WScript.CreateObject("WScript.Shell")
  2. set oShellLink = WshShell.CreateShortcut("D:\桌面\Desktop\Dism++.lnk")
复制代码

作者: terse    时间: 2022-12-17 20:36

  1. @echo off
  2. del 1.txt 2.>nul
  3. set /p M=<lnk路径.txt
  4. for /f "tokens=*" %%i in (快捷方式-模板.txt) do call :begin "%%i"
  5. start notepad 1.txt
  6. goto :eof
  7. :begin
  8. set var=%~1
  9. if defined var call set var=%%var:lnk路径=%M%%%
  10. if defined var echo %var%>>1.txt
复制代码

作者: yyz219    时间: 2022-12-17 20:37

terse 发表于 2022-12-17 20:36



    我试一试先,谢谢
作者: yyz219    时间: 2022-12-17 20:39

terse 发表于 2022-12-17 20:36



    成功了,再次感谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2