1. ホーム
  2. batch-file

[解決済み] バッチ中の "カウンター"

2022-02-17 13:22:06

質問事項

ループするたびに変数を1ずつ増やし、その変数が5と等しいかどうかをチェックし、等しくなければまたループするようなバッチファイルを作ろうとしているのですが、どうすればよいでしょうか?このためにwhileループがあるのでしょうが、その方法がわからず、今は楽しみながらBatchを勉強しているところです

これがそのコードです。このコードでは、あるべき形で動作せず、0:を表示するだけで、あとは何もしません。では、どのように修正すればいいのでしょうか?私は、変数の設定とインクリメントが間違っているような気がしています。(それはelse if...を持っていますか?) とにかく、助けをありがとうございます。

@echo off
set /p i=0:
goto A

:A
set /p i=i+1:
if i != 5 goto C
if i == 5 goto B

:C
echo Test :D

:B
pause>nul

注:私はBatchのことをあまり知りませんし、プロでもありません。しかし、学ぶことが好きで、将来の参考のため、そして楽しいからやっているだけです。このコードはおそらく良くないと思いますが、どうすればこれを達成できるのか知りたいのです。

どのように解決するのですか?

これは、あなたが実現しようとしているwhileループをシミュレートする方法です。たった一つの goto が必要です。

@echo off
set /a x=0
:while
if %x% lss 5 (
  echo %x%
  pause>nul
  set /a x+=1
  goto :while
)
echo Test :D