问题: 我正在努力弄清楚为什么这个命令行代码会跳过其他所有字符?
%INPUT_NAME%var如下所示:“Justified-S06E12-SindependenceDay-36770989-0”
以下代码的结果:我没有返回“Justified”,而是获得了类似“Jsife061”的内容。
目标:在第一个“ - ”之后删除所有内容并使用结果(在本例中为“Justified”)来执行搜索。
非常感谢任何帮助。
当前代码迭代:
::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 :(得分:0)
有一种更简单的方法可以做到这一点:
for /f "delims=-" %%i in ("%INPUT_NAME%") do set string=%%i
for
命令将您的变量划分为"令牌"。您可以定义哪个char是分隔符(在您的情况下为-
)。如果你不告诉for
要使用哪个令牌,那么它需要第一个 - 完全是你想要的。