【问题标题】: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%