1

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

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

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

我想考虑“Dir2”这个词来拆分它,以便我得到输出:

Dir2\Dir3\File.c

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

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

4

2 回答 2

3

尝试这个:

set "word=C:\Dir1\Dir2\Dir3\File.c"
set "word=%word:*C:\Dir1\=%"
echo %word%
于 2013-07-04T15:54:20.843 回答
3
@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+

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

于 2013-07-04T15:08:40.400 回答