使用Batch脚本拆分字符串

时间:2015-06-22 11:53:46

标签: batch-file split

你可以称之为重复的问题,但事实是我找不到解决方案。如果你不想回答,也许你可以直接回答。

我在变量中有一个文件名A123_101234_3。 我想基于下划线将字符串拆分为分隔符,然后使用字符串的最后一部分“3”进行进一步比较(实际上是月份数)。

感谢您的帮助

2 个答案:

答案 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%