Windowsバッチプログラミングで部分文字列を実行しようとしていますが、Linuxスクリプトと同じくらい簡単ではないようです。Windowsバッチプログラミングで変数を使用する
ここに私のコードスニペットがあります。
set ENV_STRING=-Dhello.env=hello -Dhello.alt.dir=C:\Works\download -Dhello.type=DDDDD
set START_INDEX=34
set END_INDEX=51
SET newStr=%ENV_STRING:~%START_INDEX%,%END_INDEX%%
START_INDEXとEND_INDEXは、ユーザーが提供するENV_STRINGに応じて変更されます。これらの変数が使用されていることを示すために、私はSTART_INDEXとEND_INDEXに静的整数を使用しています。 ENV_STRINGからhello.alt.dirの値を抽出したいだけです。
newStrを出力すると、文字列の部分文字列は出力されません。
誰かが間違っている部分を指摘してもらえますか?
ありがとうございました。
質問は不明です、希望する結果を示してください。 – jfatal
ENV_STRINGから '-Dhello.alt.dir'の値である 'C:\ Works \ download'のみを抽出したいと思います。 – user826323
'SET newStr =!ENV_STRING:〜%START_INDEX%!%END_INDEX%!'を遅延拡張で使用するか、 'CALL SET newStr = %% ENV_STRING:〜%START_INDEX%、%END_INDEX %%%'を使用してください。私はあなたに[この回答](http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990)を読むことをお勧めします。この管理については説明していますが、トピックは異なります。 – Aacini