我需要使用单词作为分隔符来拆分批处理文件中的字符串。
例如,如果我有这样的输入:
C:\Dir1\Dir2\Dir3\File.c
我想考虑“Dir2”这个词来拆分它,以便我得到输出:
Dir2\Dir3\File.c
请注意,在处理之前无法知道 Dir2 的父/子目录的数量。
我试过了,for /f
但它不起作用,因为它不接受带有多个字符但只有单个字符的分隔符。
我需要使用单词作为分隔符来拆分批处理文件中的字符串。
例如,如果我有这样的输入:
C:\Dir1\Dir2\Dir3\File.c
我想考虑“Dir2”这个词来拆分它,以便我得到输出:
Dir2\Dir3\File.c
请注意,在处理之前无法知道 Dir2 的父/子目录的数量。
我试过了,for /f
但它不起作用,因为它不接受带有多个字符但只有单个字符的分隔符。
尝试这个:
set "word=C:\Dir1\Dir2\Dir3\File.c"
set "word=%word:*C:\Dir1\=%"
echo %word%
@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+
+
包括在内只是为了证明不涉及杂散空间。