2016-07-11 22 views
-2

私は実際にコーディング/デコードに取り組んでいます。今では、数値グループを他のグループと分ける必要があります。数値グループの長さは不明ですが、私はそれらが ""(空白文字)で分割されていることが分かります。私は続行する方法を知りませんが、私は擬似コードで自分の意志を説明することができます:Windowsバッチで可変長の分割文字

for x-times (maybe the maximum, like 128) (
group[index] = the first part of the string until " " 
string = string minus the first part until " " 
) 

基本的に、私は1つのアレイ内のグループを抽出したいです。これは可能ですか? 定義済みのトークンで多くのメソッドを試しましたが、私のシステムは全く異なります。

+1

ルック[\ [バッチファイル\]分割した文字列](http://stackoverflow.com/search?q=%5Bbatch-file%5D+split+string)。ご覧のとおり、これは初めて尋ねられたものではありません。区切り文字としてスペースを含む文字列の場合は、__FOR__コマンドが必要です。このコマンドのヘルプは、/?のコマンドプロンプトウィンドウで実行してください。 – Mofi

+0

シェルスクリプト(バッチ)でこれを行うのではなく、PowerShellを使用します。 PowerShellには、部分文字列、配列と構造化言語ループステートメントの組み込みサポートのネイティブ文字列サポートがあります。 –

+0

申し訳ありませんが、1)私のシステムが違う2)あなたが投稿した解決策がうまくいかない3)私はpowershellではなくバッチを使用しています。 –

答えて

0

Mofiが既に指摘したように、簡単なforがこのトリックを行います。 "単語"(配列)ごとに変数を作成するカウンタを追加します。実際の単語や数字であるかどうかは関係ありませんが、&,|などのエラーを生成する特殊文字や、%,!などの無視される特殊文字もあります。検索用語を持つこのスタックオーバーフローの

@echo off 
setlocal enabledelayedexpansion 
set count=0 
set "string=some substrings with variable lengths separated by space" 
for %%a in (%string%) do (
    set /a count+=1 
    set substring[!count!]=%%a 
) 
set substring[ 
+0

ありがとうStephan –