我想从存储在变量中的字符串中获取元素的数量,变量之间有分隔符。 注意:我有 mystring 变量,它具有特定的格式,我需要保持原样。
@echo off
setlocal enabledelayedexpansion
REM This is what I try to make working :
set mystring=0510150^\^|0510298^\^|051072803^\^|0510966
for /f "tokens=* delims=|" %%a in ("%mystring%") do (set /A nbfields=%nbfields%+1)
echo The number of elements is : %nbfields%
REM The following is a simplified version I used for debugging but it doesn't work too :
set mystring=0510150A0510298A051072803A0510966
for /f "tokens=1 delims=A" %%a in %mystring% do (set /A nbfields=%nbfields%+1)
echo The number of elements is : %nbfields%
我想在少于 5 个 Windows 批处理行中完成此计数,或者使用 Windows 批处理文件中的单行 powershell 调用。
我必须在 Windows 批处理文件中运行此“计数”,但如果需要,它可以包含 1 或 2 行 powershell 调用。
我在这个网站上找到了几个使用cmd的示例,但我无法使它们适应我的问题...
此技术来自 DosTips.com
上的一个帖子@echo off
setlocal EnableDelayedExpansion
set "mystring=0510150^\^|0510298^\^|051072803^\^|0510966"
set i=1
set "mystring!i!=%mystring:|=" & set /A i+=1 & set "mystring!i!=%"
echo Fields=%i%