@ECHO OFF
SETLOCAL
@ECHO OFF
SET map=CGWGWBBBTB
SET playerposition=1
CALL SET playereposition=%%map:~%playerposition%,1%%
SET play
SET playerposition=2
CALL SET playereposition=%%map:~%playerposition%,1%%
SET play
SET playerposition=3
CALL SET playereposition=%%map:~%playerposition%,1%%
SET play
また、サブルーチン使用できます。サブ-から-第三パラメータ長-4-パラメータの文字列秒を格納するために使用され
SET playerposition=4
CALL :setsubstr playereposition map %playerposition% 1
SET play
GOTO :EOF
:setsubstr
SETLOCAL ENABLEDELAYEDEXPANSION
SET "return=!%2:~%3,%4!"
endlocal&SET "%1=%return%"
GOTO :EOF
ここ
、一時変数return
を変数名の第1パラメータに-parameterを指定します。
endlocal&...
は一時変数を破棄し、解析トリックを使用して値を%1
に割り当てます。このアプローチを使用しても、ルーチンは、例えば、1をデフォルトする(変化に)省略4パラメーター可能にすることによって、「スマート」行うことを可能にすること
注意。
文字列内の位置カウントが0
で始まり、1
ではないことにも注意してください。 !
'マップ:!ディレイド拡張が有効、またはで〜%playerposition%、1' ' %%マップを呼び出す:〜%playerposition%、1 %%'なし。この管理は、[この回答](http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990)で説明されています質問は同じではありません... –
Aacini
@Aaciniありがとう!これはとても役に立ちました!それがコメントのためのものだった場合、upvoteでしょうか... –
リンクされた答えをupvoteするかもしれません... ** ';)' ** – Aacini