サブフォルダ内のaviファイルを一括で処理するバッチファイルの作成方法

このQ&Aのポイント
  • サブフォルダ内のaviファイルを一括で処理するバッチファイルを作成する方法を解説します。
  • このバッチファイルでは、フォルダをD&Dして読み込み、サブフォルダ内にある全てのaviファイルにAvidemuxを適用します。
  • バッチファイルを実行するだけで、複数のaviファイルを一括で処理できます。
回答を見る
  • ベストアンサー

サブフォルダ内のファイルを読むD&D

複数のavi動画ファイルをD&Dして avidemuxで処理するシェルスクリプト(バッチファイル)を以下のように書きました。 :start if "%~1" == "" goto end "C:\Program Files\Avidemux 2.6 - 64bits\avidemux_cli" --load %1 --output-format MP4v2 --save "%~dpn1.mp4" --quit shift goto start :end exit これを改良して フォルダ毎D&Dして、読み込んで サブフォルダ内に入っている全てのaviファイルに上記の処理をかけられる バッチファイルを作成したいのですが どのようにして作れば良いですか?

  • KUZUY
  • お礼率19% (60/308)

質問者が選んだベストアンサー

  • ベストアンサー
  • yelser
  • ベストアンサー率72% (8/11)
回答No.2

::bat file start for /r %1 %%i in (*.avi) do (  "C:\Program Files\Avidemux 2.6 - 64bits\avidemux_cli" --load "%%~i" --output-format MP4v2 --save "%%~dpni.mp4" --quit ) exit ::bat file end ということです 好みでフォルダが引数に取られなかった時(空、ファイル名など)の処理を加えると良いのではないでしょうか

KUZUY
質問者

お礼

ありがとうございます。 うまくいきました。  

その他の回答 (1)

  • yelser
  • ベストアンサー率72% (8/11)
回答No.1

FOR文を使うとよいでしょう FOR /R [[ドライブ:]パス] %変数 IN (セット) DO コマンド [コマンド パラメーター] で、セットに*.avi を指定すればよいでしょう

KUZUY
質問者

お礼

ありがとうございます。 できれば、もう少し具体的な記述の仕方を教えていただけないでしょうか? できれば、上記のコードを改良したものを書いていただけないでしょうか?  

関連するQ&A

  • フォルダ構成を保ったままファイルを移動させるバッチ

    http://okwave.jp/qa/q8850069.html このページで 複数のaviファイルが入ったフォルダを読み込んで mp4に変換するバッチ処理の方法を教えていただきました。 これを発展させて、 変換元のaviファイルだけをフォルダ構成を保ったまま 別のフォルダに移動させるバッチ処理を作りたいと考えています。 for /r %1 %%i in (*.MTS) do ( "C:\Program Files\Avidemux 2.6 - 64bits\avidemux_cli" ^ --load "%%~i" --output-format MP4v2 --save "%%~dpni.mp4" --quit move "%%~i" D:\test\ ) のように、moveを入れてみたのですが、 これだとファイルだけが全て上記のフォルダに移動されてしまいます。 http://okwave.jp/qa/q3504077.html for /d %%f in (*) do move %%f .. 恐らくこのページが参考になるのではないかと思うのですが これをどうやって使えば良いか分かりません。 この方法について教えていただけないでしょうか?

  • DOS バッチファイルコマンド記述について

    DOSのバッチファイルを利用してコマンドを記述したバッチファイルを作り、 ドロップしたファイルのバイト数を見て1000バイト以上あったら指定のフォルダに 移動させたいと考えています。素人ながらに以下のファイルを作ってみたのですが うまく動いてくれません。添削して頂けると助かります。よろしくお願いします。 :start if %1""=="" goto end if "%~z1" gtr 1000 move "%1" C:\bk shift goto start :end

  • バッチファイルでのif文分岐

    ドラッグ・アンド・ドロップ(以下、D&D)によるバッチファイルを作成する際にダブルクリックでバッチファイルを開こうとする行為のフェールセーフを考えています。 現状では、以下のバッチファイルにファイルやフォルダをD&Dするとif文の分岐の箇所で終了してしまいます。 有識の方の教授をお願いします。 /* ↓↓ 以下コードです ↓↓*/ @echo off if "%1"=="" goto error rem D&Dされたパスを表示 echo %1 echo 終了しました。 goto end :error echo このファイルはダブルクリック形式ではありません。 echo ファイルやフォルダをD^&Dして下さい。 pause exit :end exit /* ↑↑ ここまで ↑↑ */ 開発環境 OS:WindowsXP 以上、よろしくお願いします。

  • バッチファイル  フォルダを閉じる

    お世話になっております。 WindowsXP SP3版でログインする際にスタートアップが稼動する思いますが そこにバッチファイルを入れる計画です。 処理内容は (1)ある特定のフォルダを開かせ、 (2)(1)で開いたフォルダを最小化する(タスクバー上におく)。 (1)は以下のようなプログラムになりましたが (2)がわかりません。 REM---------------------------------------- start explorer "F:\test\in" start explorer "F:\test\out" REM---------------------------------------- バッチファイルだけでは実現は不可能なのでしょうか? もしご存知の方がいらっしゃれば、ご教授願います。 以上、宜しくお願い致します。

  • バッチファイルへのD&D処理

    バッチファイルで以下の作業を自動化したいと考えていますが、初心者のため上手くいきません。 構想の可否を含め参考になるサイト、例文など教えてください。 環境はWindows Xp SP3です。 [処理] 1.バッチファイルに任意のフォルダをD&D 2.任意のフォルダ内に新規フォルダを作成する(例:写真等) 3.新規作成したフォルダに、任意のフォルダ内にある「.jpg」ファイル全てを移動させる 自分でも全パスを指定してのタイプでしたら作成できるのですが、それだと汎用性がないため、 こちらのタイプに変更したいと考えています。 アドバイスお願いします。

  • 特定のサブフォルダのテキストファイルだけをリネイムするバッチファイル

    特定のサブフォルダのテキストファイルだけをリネイムするバッチファイル 以下のような階層構造でファイルを保存していますが、2回目フォルダのテキストファイルのみを リネイムするバッチファイルは作成可能でしょうか? 仕事で必要なのですが、プログラム的なことはさっぱりわからないので困っております。 ご存じの方がいらっしゃいましたら、何とぞよろしくお願いいたします。 ・構造 以下の2パターン  1.親フォルダ-月フォルダー日フォルダーテキストファイル  2.親フォルダ-月フォルダー日フォルダーn回目フォルダーテキストファイル 例)1.の場合 D:\parent\1月\9日\20100109goo.txt 2.の場合 D:\parent\1月\9日\2回目\20100109goo.txt パターン1、2、ともに親フォルダ内に複数あり バッチファイルの結果:2回目フォルダのテキストファイルのみ            goo.txt→20100109goo.second.txtにしたい

  • DOSバッチ処理でファイル名の取得

    選択した複数のファイルの名称を取得する目的で、以下の内容のバッチファイルを作成し、(右クリック>送る) で使えるようにしています。 選択するファイル名が少なければ問題なく.txtが作成されるのですが、ファイル数が100を超えると(選択したファイルによって上限が変わる).txtが作成されなくなります。 バッチファイルの内容に問題があるのでしょうか? アドバイスをお願いします。 :start if "%~1"=="" goto end dir /b %1 >> %TEMP%\List.txt shift goto start :end

  • サブフォルダ内含め全てのファイル名を一括置換するw

    サブフォルダ内含め全てのファイル名を一括置換するwindowsバッチ処理について ファイル名の「YYYYMM」部分を一括で変換したく以下の様なバッチ文を記載しました。 しかし置換処理がうまくいかず、ファイル名の後ろに入力文字列がくっついてしまいます。 set /p YYYYMM="年月を入力してください(yyyymm形式):" echo %YYYYMM% for /r %%f in ( * ) do call :sub %%f %YYYYMM% pause exit /b :sub echo %2 set fname=%~nx1 set fname=%%fname:YYYYMM=%2%% echo %fname% ren %1 %fname% goto :EOF 環境上、ファイル名リネームソフトやWindows Powershellを使うことができないため、何とかバッチ処理で楽をしたいのですがかなり煮詰まってしまい。。。 どなたかアドバイスをお願いできないでしょうか。 よろしくお願いいたします。

  • バッチファイルへのD&D

    バッチファイルを作成して、以下の作業の効率化を図ろうと考えていますが、初心者のため、上手くいきません。 アイディアの可否を含めて、参考になるサイト、例文など教えてください。 環境はWindows Xp SP3です。 [作業] 1.バッチファイルに任意のフォルダAをD&Dする 2.フォルダA内にフォルダB-1を作成する。 3.作成したB-1に、フォルダA内の[.jpg]ファイルを移動する 以上 フルパスを指定してのバッチファイルなら自分でも何とか作成できるのですが、 このアイディアのは全くできませんでした。 よろしくお願いします。

  • バッチファイルによるフォルダ名の変更

    バッチファイルによるフォルダ名の変更 あるフォルダに存在する日付(西暦)を名称としたフォルダ、例えば 2010-0530 を、バッチファイルを実行することで、和暦(元号)、例えば H220530 に名前を変え、その後に特定のアプリケーション(Picasa3)を実行したいのです。 インターネット上の情報を参考に、 @echo off cd /d K:\VIDEOPHOTO\H220401から for /d %%f in ( * ) do call :sub "%%f" start C:\"Program Files\Google\Picasa3\Picasa3.exe" exit /b :sub set dirname=%1 set dirname=%dirname:(=【% set dirname=%dirname:)=】% set dirname=%dirname:2010-=H22% ren %1 %dirname% goto :EOF というバッチファイルを作り、概ね希望どおりの結果となったのですが、既に同名のフォルダが存在していた場合(例ではH220530というフォルダが既に存在)、フォルダ名の変更はされずスルーされてしまいます。 既に同名のフォルダが存在していても、フォルダ名を変更(既存フォルダと統合)することはできますでしょうか?

専門家に質問してみよう