【问题标题】:Batch Command to replace text in file批处理命令替换文件中的文本
【发布时间】:2013-01-31 13:07:20
【问题描述】:

我知道这个问题被问了很多次,但我没有得到我正在搜索的答案。 我想使用 windows .bat 文件替换模式。

我知道如何将X 替换为Y

但我想用C:\Programfiles\Install\ 替换installPath

在这里,我遇到了问题,因为新值字符串包含 \ 即特殊字符。

请告诉我如何替换它。

【问题讨论】:

  • 感谢大家的回答,但他们都没有帮助我。让我解释。我有一个属性文件,其中有一个名为 installPath 的属性,在从命令行运行 .bat 文件时,我接受 C:\Programfiles\Install\ 作为用户的输入,然后在我的属性文件中,我必须将 installPath 替换为用户输入路径。此处提供的所有解决方案都适用于硬编码值,而不适用于用户在运行时作为输入提供的值。

标签: batch-file command-prompt


【解决方案1】:

这对我来说很好用

set p=installPath
set p=%p:installPath=C:\Programfiles\Install\%
echo %p%

【讨论】:

    【解决方案2】:

    Followinf 脚本将在文件中查找字符串并替换为另一个字符串。 前任。 “installPath”将替换为“C:\Programfiles\Install”

    @echo off
    for /f "usebackq tokens=*" %%a in ("test.txt") do call :Replace "%%a"
    del "test.txt" 
    rename "newfile.txt" test.txt 
    
    exit /b
    
    :Replace
    set str1=%~1 
    set str1=%str1:installPath=C:\Programfiles\Install% 
    echo.%str1%>>"newfile.txt" 
    
    exit /b
    

    【讨论】:

      【解决方案3】:

      也许这个工具可以帮助你:

      http://sourceforge.net/projects/fart-it/

      【讨论】:

        【解决方案4】:

        这应该可行...顺便说一句,这是我在此网站上的第一篇文章。 以下使用延迟扩展,以便您可以使用两个不同的“变量符号”:

            setlocal enabledelayedexpansion
            set iPath=installPath
            set input=C:\Programfiles\Install\
            set p=!iPath:installPath=%input%!
        

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2016-06-19
          • 1970-01-01
          • 2020-04-05
          • 2012-11-02
          • 1970-01-01
          • 2010-12-23
          • 1970-01-01
          • 1970-01-01
          • 2020-09-10
          相关资源
          最近更新 更多