【问题标题】:Split a string with a word for delimiter in batch批量拆分带有单词作为分隔符的字符串
【发布时间】:2013-07-04 14:39:54
【问题描述】:

我需要使用一个单词作为分隔符来拆分批处理文件中的字符串。

例如,如果我有这样的输入:

C:\Dir1\Dir2\Dir3\File.c

考虑到“Dir2”这个词,我想将其拆分,以便输出:

Dir2\Dir3\File.c

注意,Dir2的父/子目录的个数在处理前是无法知道的。

我尝试过使用for /f,但它不起作用,因为它不接受包含多个字符但只有单个字符的分隔符。

【问题讨论】:

标签: windows string batch-file cmd set


【解决方案1】:
@ECHO OFF
SETLOCAL
SET string=C:\Dir1\Dir2\Dir3\File.c
SET divider=Dir2
CALL SET after=%%string:*%divider%=%%
CALL SET before=%%string:%divider%%after%=%%
ECHO before=+%before%+
ECHO divider=+%divider%+
ECHO after=+%after%+
GOTO :eof

测试输出:

before=+C:\Dir1\+
divider=+Dir2+
after=+\Dir3\File.c+

+ 被包括在内只是为了证明不涉及杂散空间。

【讨论】:

    【解决方案2】:

    试试这个:

    set "word=C:\Dir1\Dir2\Dir3\File.c"
    set "word=%word:*C:\Dir1\=%"
    echo %word%
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 2014-11-28
      • 1970-01-01
      • 2021-09-07
      • 2015-05-15
      相关资源
      最近更新 更多