2017-02-10 5 views
0

おはようへは、forループ

を変数の値を設定する私は現在、複数のディレクトリを読み取ろうとするのではなく、私はのためのループ内のフォルダを反復処理したい特定の文を複数回使用しています。

キーデータ:

  • 現在の文:

robocopyをするC​​:\ Users \ユーザーテストの\ v2.5.0.0のC:\ Users \ユーザーenddir * .SQL

  • ループ用バッチのコード例を以下に示します

用/ L %% X(1、1、100)ディレクトリはこの

  • v2.5.0ように幾分見える

    • 行う(エコー%% X MY ROBOCOPY STATEMENT) 0.0
    • v2.5.0.1
    • v2.5.0.3
    • v2.6.8.2
    • v2.7.4.3

    私の考えは、私は、変数に 例を使用することができるよように、すべてのディレクトリを反復処理するループに4をカプセル化していると、次のとおりです。代わりv2.5.0.0だから、

    のvW.XYZのポイント私の質問は:どのように私は設定し、現在の反復の値を持つようにforループで変数を使用することができますか? 説明に役立つなら、私はjavaに慣れています。

    ご協力いただきありがとうございます。 :)

    いくつかの情報が不足している場合は、私はもっと喜んで与える!

    編集: コード私はあなたが簡単にあなたの例のようにcoutingループを達成するために/lスイッチでバッチでforループを使用することができます

    for /l %%w in (1, 1, 100) do (
        for /l %%x in (1, 1, 100) do (
        for /l %%y in (1, 1, 100) do (
         for /l %%z in (1, 1, 100) do (
          robocopy C:\Users\test\v%%w.%%x.%%y.%%z C:\Users\enddir *.sql 
          ) 
         ) 
        ) 
    ) 
    
    +2

    本当にカウンタが必要ですか? 'for/D'でフォルダをループすることはできませんか? 'for(C:\ users \ test \ *)の/ D%fは@echo%f'ですか? http://stackoverflow.com/questions/817280/how-does-for-work-in-cmd-batch-fileおよび関連リンクも参照してください。 – TessellatingHeckler

    +1

    現在の反復の値は、パラメータ変数に格納されます。したがって、 'echo v %% W。%% X。%% Y。%% Z'を使用して結果を得ることができます。それはあなたが意味するものではない場合、私はあなたのスクリプトのスケルトンをより理解のために表示することをお勧めします:) – geisterfurz007

    +0

    @TessellatingHeckler 悲しいことに悲しいことに別のディレクトリもあり、私は唯一のディレクトリ5.2から7.4を言いたいので –

    答えて

    1

    に動作すると思います。これらは次のようにもネストすることができます。

    前で

    ラインif exist C:\Users\test\v%%w.%%x.%%y.%%z (とラインで閉じ括弧の後に:

    その上で今
    @echo off 
    for /l %%w in (1, 1, 10) do (
        for /l %%x in (1, 1, 10) do (
        for /l %%y in (1, 1, 10) do (
         for /l %%z in (1, 1, 10) do (
         echo currently at v%%w.%%x.%%y.%%z 
        ) 
        ) 
    ) 
    ) 
    

    は、私が追加する何かを示唆してほぼ正確にあなたの質問で示されています実際にコピーしたいディレクトリが存在することを確認するために、robocopy行の周りに追加する必要があります。

    +0

    それは私が思ったように、ありがとう! "@echo off"は重要ですか? (と素敵なユーザ名; P) –

    +1

    @echo offは、おそらく厄介なコマンドライン出力を防ぐかもしれませんが、それは重要ではありませんが、通常はそれを含めます。ありがとう ;) – geisterfurz007