0

アンダースコアで区切られた単語を含む文があります

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]%

しかし、このロジックには問題があるようです。

4

1 に答える 1

0

BAT 言語には配列の概念がありません。ただし、さまざまな手法でそれを模倣することができます。

そのような手法の 1 つは、CALL コマンドで渡されたパラメーターの自動解析を利用することです。

HELP SET と HELP CALL を読んで、これを試してみてください...

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
于 2013-09-10T16:11:41.613 に答える