你可以称之为重复的问题,但事实是我找不到解决方案。如果你不想回答,也许你可以直接回答。
我在变量中有一个文件名A123_101234_3。 我想基于下划线将字符串拆分为分隔符,然后使用字符串的最后一部分“3”进行进一步比较(实际上是月份数)。
感谢您的帮助
答案 0 :(得分:5)
知道它是第三个元素,并且元素以下划线分隔,您可以使用for /f
标记器
set "input=A123_101234_3"
for /f "tokens=3 delims=_" %%a in ("%input%") do set "output=%%a"
知道它是输入中的最后一个元素,但不知道有多少元素,您可以将下划线转换为空格并迭代元素列表。这将覆盖输出变量,保留最后一个元素
set "input=A123_101234_3"
for %%a in ("%input:_=" "%") do set "output=%%~a"
如果数据包含空格或其他分隔符,则可以用反斜杠替换下划线并将输入作为文件引用处理
set "input=A123_101234_3"
for %%a in ("%input:_=\%") do set "output=%%~nxa"
答案 1 :(得分:2)
for /f "tokens=3 delims=_" %%# in ("A123_101234_3.csv") do set month=%%~n#
echo %month%