2016-04-15 3 views
0

私はバッチコーディングに新たなんだとファイルを作成するには、そう簡単で行ってください。バッチが異なる名前

次のコードを検討してください:私は上記のコードを持つテキストファイルを作成しようとしていますが、私は+ 1、+ 1 2、+ 1 3を取得しています。..ので

FOR /L %%G IN (1,1,20) DO (break>"C:\New folder\%%G+1.txt") 

をに。

パラメータを触れないように、しかし%%G+1でパラメータの値を大きくする方法はありますか?文字列として出力する代わりに、それは私に数字を与えます。

私を導いてください。おかげ

更新:私は

:MakeTextFiles 
setlocal enabledelayedexpansion 
set "var=1" 
FOR /L %%G IN (1,1,20) DO 
(  
    set /a "var=%var%+1" 
    break>"C:\New folder\!var!.txt" 
) 
EXIT /B 

の下にこのコードを試してみました。しかし、それは働いていません。

+1

[遅延拡張](http://stackoverflow.com/questions/30282784/combining-all-mp4s-in-directory-with-ffmpeg/30284028#30284028)と「The same on on the same Magoosの答えからそうであるように物理的な回線」 – Stephan

+0

はそれを手に入れたおかげで、これにまだ新しい構文により多少の誤差があるかもしれないので – NewbieCoder

+0

ええ - 。!。。。バッチ構文は非常に直感的一貫性があったりなかったりではない気にしないでください。 - あなたが文法エラーを生成しない日はもう遠いです。 – Stephan

答えて

1
setlocal enabldelayedexpansion 
FOR /L %%G IN (1,1,20) DO 
(
    set /a _new=%%G+1 
    break>"C:\New folder\!_new!.txt" 
) 

あなたの一番最後に変更されたSOについてdelayedexpansion

2つの問題についての記事のhundrdsをご覧ください。

(doと同じ物理回線上にある必要があります。

set /a var=!var!+1 

又は

set /a var=var+1 

又は

set /a var+=1 

set /avarの実行時の値にアクセス!var!varの実行時の値であり、%var%は、解析時間の値でありますvar - forに遭遇したときの値です。

1

あなただけの上にあなたのループセットを変更、ここ算術加算を必要としません:あなたは間違いなく、算術たい場合

FOR /L %%G IN (2,1,21) DO (break>"C:\New folder\%%G.txt") 

setlocal enabledelayedexpansion 
FOR /L %%G IN (1,1,20) DO (
set /a var=%%G+1 
break>"C:\New folder\!var!.txt") 

をあなたがここを見てする必要があります:

calculating the sum of two variables in a batch script

ここに delayed expansion

+0

私はパラメータに触れたくありません。 – NewbieCoder

+0

算術解答へのリンクを追加しました。 – CodeMonkey

+1

さらに、[遅延拡張](http://stackoverflow.com/a/30284028/2152082) – Stephan

関連する問題