2015-03-19 58 views
0

問題: 我在努力弄清楚爲什麼這個命令行代碼跳過其他每個字符?爲什麼這個命令行代碼跳過其他每個字符?

的%INPUT_NAME%VAR看起來是這樣的: 「有道理-S06E12-SindependenceDay-36770989-0」

下面的代碼的結果:,而不是返回 「對齊」,我得到的東西,如「Jsife061 」。

目標:刪除第一個「 - 」後面的所有內容並使用結果(在本例中爲「合理」)執行搜索。

任何幫助將不勝感激。

目前代碼迭代:

::Remove any Spaces from Search Name 
 
set HAYSTACK=%INPUT_NAME% 
 
set HAYSTACK=%HAYSTACK: =% 
 
echo.%HAYSTACK% 
 

 

 
SET SEARCHNAME= 
 
:GetUntilDash_loop 
 

 
IF %HAYSTACK% EQU "" GOTO :EOF 
 
    IF %HAYSTACK:~0,1% EQU "-" GOTO :SearchFile 
 
     SET SEARCHNAME=%SEARCHNAME%%HAYSTACK:~0,1% 
 
     echo.%HAYSTACK:~0,1% 
 
     SET HAYSTACK=%HAYSTACK:~1% 
 

 
GOTO :GetUntilDash_loop 
 

 
:SearchFile

回答

0

有做這更簡單的方法:

for /f "delims=-" %%i in ("%INPUT_NAME%") do set string=%%i 

for命令將您的變量爲 「標記」。你可以定義,哪個字符是分隔符(在你的情況下是-)。如果您不告訴for需要使用哪個令牌,則需要第一個令牌 - 完全是您想要的。

+0

輝煌,更高效。我傾向於總是以艱辛的方式去做事情。謝謝! – user4687570 2015-03-19 22:27:42