2013-07-04 59 views
0

我需要使用一個字來分隔批處理文件中的一個字符串。批量分割字符串和一個用於分隔符的字

例如,如果我有一個像輸入:

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

我想拆呢考慮單詞「方向2」,讓我得到的輸出:

Dir2\Dir3\File.c 

注意,處理前無法知道Dir2的父/子目錄數。

我試過for /f,但它不起作用,因爲它不接受帶有幾個字符但只有單個字符的分隔符。

+0

可能重複(http://stackoverflow.com/questions/14620709/how-to-split-string-without [如何在沒有在批處理文件中循環拆分字符串] -for-loop-in-batch-file) – jeb

回答

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+ 

+只是被列入證明有沒有涉及流浪空間。

3

試試這個:

set "word=C:\Dir1\Dir2\Dir3\File.c" 
set "word=%word:*C:\Dir1\=%" 
echo %word% 
+0

很neet絕招。非常感謝! – Rakha