コマンドプロンプトでフォルダのファイル数が1件以上の時だけ処理実行する判定の実装


課題

  • バッチ処理で、targetフォルダにあるフォルダをすべてbackupフォルダに移したい。
  • ファイルがなければ実行したくない(ログ出力の関係で)(今回はログ出力は省略)

解答

FOR /F %%i in ('dir /B /S target ^| find /c /v ""') do set DIR_COUNT=%%i
if not %DIR_COUNT%==0 move /Y target\* backup\

pause

参考サイト

感想

  • ファイルのカウントの仕方
  • forコマンドによる代入の仕方
  • その際にパイプを含むコマンドを使う場合の対処

これを理解していないとダメだった。