Batch file 在批处理脚本中将句子数组转换为单词

Batch file 在批处理脚本中将句子数组转换为单词,batch-file,Batch File,我有一个句子,单词之间用下划线隔开 sentence = matt_george_phil 我想把这句话中提到的名字转换成一个数组,即 arr[0] = matt arr[1] = george arr[2] = phil 我不熟悉批处理脚本。有人能告诉我怎么做吗。谢谢 我试过类似的东西 setlocal enableextensions enabledelayedexpansion echo run set sentence=a~b~c set /a i=0 for /f "toke

我有一个句子,单词之间用下划线隔开

sentence = matt_george_phil
我想把这句话中提到的名字转换成一个数组,即

arr[0] = matt
arr[1] = george
arr[2] = phil
我不熟悉批处理脚本。有人能告诉我怎么做吗。谢谢

我试过类似的东西

setlocal enableextensions enabledelayedexpansion
echo run

set sentence=a~b~c

set /a i=0

for /f "tokens=1,2,3 delims=~" %%a in ("%sentence%") do (
   set /a i+=1
   set array[!i!]=%%a
)

echo %array[1]%
echo %array[2]%

但是这种逻辑似乎存在一些问题。

BAT语言没有数组的概念。但是,您可以使用各种技术来模拟它

其中一种技术是利用调用命令中传递的参数的自动解析

阅读“帮助集”和“帮助呼叫”,然后尝试此

SET sentence=matt_george_phil
SET sentence=%sentence:_=%
CALL :asarray %sentence%
goto :eof

:asarray
echo first element = %1
echo second element = %2
echo third element = %3

我已经添加了我刚刚尝试的代码。你能帮我调试一下吗。