【问题标题】:Find and replace a string into a path in batch批量查找字符串并将其替换为路径
【发布时间】:2013-05-15 22:40:56
【问题描述】:

我正在尝试一个批处理文件,它将名为 X 的更改文本替换为路径中的静态文本“英语”

  Y:\SUT\ISTQB\Board\X\Dashboard\Open

关于 X 文本的位置,总是被 'Board' 和 'Dashboard' 包围。

在下面的路径中,给定路径的当前下面的文本是“X=Language”,我的目标当然是每次都得到“X=English”!

   Y:\SUT\ISTQB\Board\Language\Dashboard\Open

从文件中读取替换字符串。此文件仅包含“英文”

是否有可能使用“find”命令通过管道找到解决方案?

提前谢谢你

【问题讨论】:

    标签: search batch-file replace


    【解决方案1】:
    @ECHO OFF
    SETLOCAL
    SET mypath=Y:\SUT\ISTQB\Board\X\Dashboard\Open
    FOR /f %%i IN (languagefile.txt) DO SET language=%%i
    SET mypath=%mypath:\Dashboard\=*%
    SET mypath=%mypath:\Board\=*%
    FOR /f "tokens=1,3delims=*" %%i IN ("%mypath%") DO SET mypath=%%i\Board\%language%\Dashboard\%%j
    ECHO %mypath%
    

    选择“*”是因为它不能出现在路径名中。

    【讨论】:

    • 非常感谢您!
    【解决方案2】:

    试试这个:

    @echo off &setlocal enabledelayedexpansion
    set "string=Y:\SUT\ISTQB\Board\Language\Dashboard\Open"
    set "search=%string:*\Board\=%"
    for /f "delims=\" %%i in ("%search%") do set "search=%%i"
    set "string=!string:%search%=English!"
    echo %string%
    

    【讨论】:

    • 对不起,我忘了说一件基本的事情:“语言”是一个不断变化的文本,它总是位于“板”和“仪表板”之间。所以我更新了我的问题。谢谢。
    猜你喜欢
    • 2011-11-16
    • 2015-07-17
    • 1970-01-01
    • 2013-03-21
    • 2015-06-12
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多