• 締切済み

バッチの実行順序を教えて下さい。

for %%F in (南條愛乃・エオルゼアより愛をこめて*.mp3) do call :sub1 "%%F" goto :EOF1 :sub1 set Bstr1=%1 set Bstr2=%Bstr1:~1,17% set Bstr4=%Bstr1:~19,256% set Bstr5=%Bstr2%_%Bstr4% rename %Bstr1% "%Bstr5% move "%Bstr5% "trush\%Bstr5% ffmpeg -i "trush\%Bstr5% -ab 48k "%Bstr5% goto :EOF1 :EOF1

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

今回の質問で提示されたコードは 過日私が提示したコードと同じと思い コメントしてしまいました。 今回の質問で提示されたコードの場合は sub1の範囲は、 :sub1の次行から:EOF1の直前まです。 ただし、途中に goto :EOF1 があるので、 EOF1の次行に進むものの(そこにコードがないので) そもそも、call :sub1 と呼ばれた命令なので、 呼出元、つまり、 for %%F inの右側に戻ります。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

https://code-examples.net/ja/q/23c727d が参考になると思います。 for %%F in この右側は、sub1を該当するフィルがなくなるまで繰り返せの意。 無くなったら、goto :EOFを実行(つまり終了) sub1の範囲はsub1:の次行からgoto :EOFの直前まで。 ※ goto :EOF1 としたときの動作は未確認です。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

見覚えがあるので過去を調べてみたら 過日私が提示したコードのようです。 https://okwave.jp/qa/q9632768.html で、 ファイルたちがどのような順番で処理されるのか? という質問であれば 「多くの場合ファイル名順の可能性は高いが、厳密には不定」 です。(と思います) ↓にも同じようなコメントがあります。 https://social.technet.microsoft.com/Forums/windowsserver/ja-JP/50a5f977-a58c-4eba-9931-177da5183566/for124671251012531124891239112527124521252312489124591254012489?forum=windowsserver2003ja VBAでポピュラーなFor Each構文も https://www.exvba.com/2260/ のとおり不定です。

maiko04
質問者

お礼

>見覚えがあるので過去を調べてみたら >過日私が提示したコードのようです。 あ、その節はお世話になりました。 定まっていないのですね。 システム設計の立場からすると非常に困るんですが、 某大手さんは「スペック」として逃げるんですよねw。

maiko04
質問者

補足

あ、そうじゃなくてsub1の範囲はどこまでか。 sub1を呼んでいるのにsub1の最後にgotoがあるのはなぜか? sub1でgotoするならforの次にgotoしているのはなぜか? です。

関連するQ&A