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

[文本处理] 求助,如何用批处理替换文本中内容

[复制链接]
发表于 2023-10-11 22:57:09 | 显示全部楼层 |阅读模式
本帖最后由 yg8547 于 2023-10-11 23:02 编辑

假设有一个文件在C盘根目录下文件名为
  1. ConductorS.INI
复制代码
,文件部分内容如下;需将里面内容
  1. D:\Conductor90\  
复制代码
替换为
  1. C:\Conductor666\
复制代码
,如何用批处理来替换呢?
  1. [Text Setting]
  2. TextPath=D:\Conductor90\S_Data\Report

  3. [HTML Setting]
  4. HTMLPath=D:\Conductor90\S_Data\Report\Html
  5. ;没有IIS
  6. URLPath=file://D:\Conductor90\S_Data\Report\Html
  7. ;有IIS
  8. ;URLPath= http://127.0.0.1/Html

  9. [Batch Setting]
  10. BatchPath=D:\Conductor90\S_Data\Batch_Log
  11. ;未装 IIS
  12. URLPath=file://D:\Conductor90\S_Data\Batch_Log
  13. ;己装 IIS
  14. ;URLPath= http://127.0.0.1/Batch_Log
  15. C:\Conductor666\
  16. [Trans Setting]
  17. TransPath=D:\Conductor90\S_Data\Trans_Log
  18. ;未装 IIS
  19. URLPath=file://D:\Conductor90\S_Data\Trans_Log
  20. ;己装 IIS
  21. ;URLPath= http://127.0.0.1/Trans_Log
复制代码
最终结果如下所示
  1. [Text Setting]
  2. TextPath=C:\Conductor666\S_Data\Report

  3. [HTML Setting]
  4. HTMLPath=C:\Conductor666\S_Data\Report\Html
  5. ;没有IIS
  6. URLPath=file://C:\Conductor666\S_Data\Report\Html
  7. ;有IIS
  8. ;URLPath= http://127.0.0.1/Html

  9. [Batch Setting]
  10. BatchPath=C:\Conductor666\S_Data\Batch_Log
  11. ;未装 IIS
  12. URLPath=file://C:\Conductor666\S_Data\Batch_Log
  13. ;己装 IIS
  14. ;URLPath= http://127.0.0.1/Batch_Log
  15. C:\Conductor666\
  16. [Trans Setting]
  17. TransPath=C:\Conductor666\S_Data\Trans_Log
  18. ;未装 IIS
  19. URLPath=file://C:\Conductor666\S_Data\Trans_Log
  20. ;己装 IIS
  21. ;URLPath= http://127.0.0.1/Trans_Log
复制代码
发表于 2023-10-11 23:47:07 | 显示全部楼层
  1. #PowerShell
  2. (gc '你的文件').Replace('D:\Conductor90\','C:\Conductor666\')
复制代码
发表于 2023-10-12 01:09:04 | 显示全部楼层
  1. @fltmc>nul||mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close)&&exit
  2. @echo off
  3. cd /d "%~dp0"
  4. (for /f "useback delims=" %%a in (`find /n /v "" ^<"c:\ConductorS.INI"`) do (
  5.         set str=%%a
  6.         setlocal enabledelayedexpansion
  7.         set "str=!str:D:\Conductor90=C:\Conductor666!"
  8.         echo=!str:*]=!
  9.         endlocal
  10. ))>$
  11. copy $ "c:\ConductorS.INI"
  12. del $
  13. pause
复制代码
 楼主| 发表于 2023-10-12 11:24:07 | 显示全部楼层
感谢,我尝试另一种方法来解决了(由于 客户端有的是 win7  powershell用不了),以下是我的解决方案  (思路大概就是在文件中将路径替换为环境变量,然后通过脚本添加环境变量,将安装路径从注册表中提取出来作为环境变量添加),再次感谢各位!!!
  1. @echo off
  2. MODE con: COLS=20 LINES=20
  3. rem 自动提权以管理员方式运行
  4. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  5. if '%errorlevel%' EQU '5' (
  6. goto UACPrompt
  7. ) else ( goto gotAdmin )
  8. :UACPrompt
  9. echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  10. echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
  11. "%temp%\getadmin.vbs"
  12. exit /B
  13. :gotAdmin
  14. if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
  15. pushd "%CD%"
  16. CD /D "%~dp0"


  17. set reg1=reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DSC\Conductor" /v ClientPath
  18. for /f "delims=" %%i in ('%reg1%') do set install_lj=%%i
  19. ::echo %install_lj%
  20. set testc=%install_lj:~28%
  21. echo %testc%
  22. ::%testc%

  23. setx YIFEIERP "%testc%" /M >nul

  24. copy /y "\\172.18.18.123\share\git\ConductorC.INI"  "%testc%"
  25. copy /y "\\172.18.18.123\share\git\ConductorS.INI"  "%testc%"

  26. %testc%\C_Dsbin\MainMenuEx.exe

  27. exit /b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 13:04 , Processed in 0.018244 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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