• 締切済み

バッチファイルでカウントアップするには

:loop set id=0 if '%1' == '' goto end cd %1 if exist %1 for %%i in (*.bmp) do ( set id+=1 echo %id% ) shift goto loop :end pause バッチファイルをSend Toフォルダにおいて 送られてきた画像データをカウントアップしていきながら名前を id.bmp変えていきたいのですが、 idをカウントアップさせたいのですが方法がわかりません。 どうすればカウントアップされるのでしょうか?

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

遅延展開を使うようにすれば出来るようです バッチファイルの起動を cmd /v /c バッチ名.bat といった具合にします if exist %1 for %%i in (*.bmp) do ( set id+=1 echo %id% ) を if exist %1 for %%i in (*.bmp) do ( set /a id+=1 echo !id! ) といった具合にしてみてください

onnobu
質問者

お礼

お返事ありがとうございます。 遅延展開を使用するとSend Toから送られてきたパスを 取得する方法がわからなかったので 別にリネーム用のプログラムを作成する方法で回避いたしました。

  • dummyplug
  • ベストアンサー率58% (134/230)
回答No.1

cmd.exeの機能は結構OSによって変わるので、使っているOS(MS Windowsだとは思いますが、XP(SP3)とか2000とか)書いた方がいいですよ。 たぶんXPからじゃないかと思いますが、setコマンドに/aオプションが追加されています。セットする値を数式として評価してくれます。ですので、 set /a id=%id%+1 のようにすれば環境変数idの(数値としてみたときの)値を一つ増やすことができます。

onnobu
質問者

お礼

お返事ありがとうございます。 これからはOS環境を書くようにいたします。 教えていただいた方法を試してみましたが for文の中ではidは+1をされずに for文をでてから足された数を出力していたので、 別にリネーム用のプログラムを作成する方法で回避いたしました。

関連するQ&A

専門家に質問してみよう