Windows 分析字符串时忽略后续分隔符

Windows 分析字符串时忽略后续分隔符,windows,batch-file,Windows,Batch File,使用下面的代码,我试图让ProjName阅读: “word1 word2-word3” 然而,我得到的结果是: “word1 word2” 如何忽略分隔符的后续实例 @echo SET FolderName="100 - word1 word2 - word3" for /F "tokens=2* delims=-" %%i IN (%FolderName%) DO (set ProjName=%%i) echo %ProjName% pause 非常感谢 编辑-只需添加,“单词”也可

使用下面的代码,我试图让ProjName阅读:

“word1 word2-word3”

然而,我得到的结果是:

“word1 word2”

如何忽略分隔符的后续实例

@echo

SET FolderName="100 - word1 word2 - word3"

for /F "tokens=2* delims=-" %%i IN (%FolderName%) DO (set ProjName=%%i)

echo %ProjName%

pause
非常感谢

编辑-只需添加,“单词”也可以是数字。

试试这个:

@echo off
setlocal enabledelayedexpansion

SET FolderName="100 - word1 word2 - word3"
for /F "tokens=1,* delims=-" %%a IN (%FolderName%) DO (set ProjName=%%b)
for /f "tokens=* delims= " %%a in ("%ProjName%") do set ProjName=%%a

echo %ProjName%

pause

这是因为代币。在本例中,a是第一个标记,所以在-,和b=*之前的所有标记,以及其他所有标记。

我不理解您的期望。你展示了你目前得到的,但是你想要什么?嗨,杰布,谢谢你的评论-我问题的第二行陈述了我想要的结果。Dennis的回答完美地解决了这个问题。抱歉,重读后,这是显而易见的。谢谢@Dennis,这就解决了问题-我不太确定它如何与“%%a”和“%%b”一起工作,但我认为这些只是任意变量名-%%b如何等于所需的值?也许我需要多读书!顺便说一句,我已经更新了我的答案,以摆脱领先的空间谢谢你的解释和更新丹尼斯,非常感谢。