批量拆分带字符分隔符的字符串

时间:2013-07-04 14:39:55

标签: windows string batch-file cmd set

我需要使用单词分隔符在批处理文件中拆分字符串。

例如,如果我有如下输入:

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

我想把它分开考虑“Dir2”这个词,以便输入输出:

Dir2\Dir3\File.c

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

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

2 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分: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+

+仅用于证明没有涉及杂散空间。