Windows 分批拆分带有单词作为分隔符的字符串
我需要使用word作为分隔符拆分批处理文件中的字符串 例如,如果我有如下输入: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
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%
可能的重复可能的重复