我需要使用单词分隔符在批处理文件中拆分字符串。
例如,如果我有如下输入:
C:\Dir1\Dir2\Dir3\File.c
我想把它分开考虑“Dir2”这个词,以便输入输出:
Dir2\Dir3\File.c
请注意,在处理之前无法知道Dir2的父/子目录数。
我尝试使用for /f
,但它不起作用,因为它不接受包含多个字符但只包含单个字符的分隔符。
答案 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+
+
仅用于证明没有涉及杂散空间。