Windows 分批拆分带有单词作为分隔符的字符串

Windows 分批拆分带有单词作为分隔符的字符串,windows,string,batch-file,cmd,set,Windows,String,Batch File,Cmd,Set,我需要使用word作为分隔符拆分批处理文件中的字符串 例如,如果我有如下输入: C:\Dir1\Dir2\Dir3\File.c 考虑到“Dir2”一词,我想将其拆分,以便得到输出: Dir2\Dir3\File.c 请注意,在处理之前,无法知道Dir2的父/子目录数 我尝试过使用/f的,但它不起作用,因为它不接受包含多个字符的分隔符,而只接受单个字符 @ECHO OFF SETLOCAL SET string=C:\Dir1\Dir2\Dir3\File.c SET divider=Dir

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

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

C:\Dir1\Dir2\Dir3\File.c
考虑到“Dir2”一词,我想将其拆分,以便得到输出:

Dir2\Dir3\File.c
请注意,在处理之前,无法知道Dir2的父/子目录数

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

@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+
+
的加入仅仅是为了证明不涉及任何杂散空间

测试输出:

before=+C:\Dir1\+
divider=+Dir2+
after=+\Dir3\File.c+
包含
+
只是为了证明不涉及任何杂散空间。

试试以下方法:

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

set "word=C:\Dir1\Dir2\Dir3\File.c"
set "word=%word:*C:\Dir1\=%"
echo %word%
可能的重复可能的重复