MS-DOSのbatchファイルとは?

このQ&Aのポイント
  • MS-DOSのbatchファイルについて詳しい方に教えていただきたいです。
  • WindowsのDOS窓で使用するbatchファイルを作成する方法を教えてください。
  • batchファイルの固定コマンドとパラメータの例について教えてください。
回答を見る
  • ベストアンサー

MS-DOSのbatchファイルに詳しい方教えてください。Window

MS-DOSのbatchファイルに詳しい方教えてください。WindowsのDOS窓で使用する次のようなbatchファイルを作成したいのですが、可能でしょうか。よろしくお願いします。 最初のコマンドラインで  aaa 99.mpg と入力します。aaaは固定のbatchファイル名、99.mpgはパラメータの例示であり、実際はユーザが毎回数字を変えて入力します。例えば100.mpg とか 101.mpg とかです。 固定のbatchファイルの内容で自動実行されるコマンドは次の2行です。 bbb f: ccc 12345678901 f:\dvd_rtav\vr_movie.vro z:\work\99.mpg 途中のbbb、cccはコマンドラインで動くプログラムです。 最初のbbb f:は固定です。 次の行の 12345678901 はbbb f:を実行すると、画面に出力される文章の7行目に出てくる Base64: という文字列の次に出てくる11文字のank文字をダミーで表現したもので、実際は毎回文字列の内容は変わります。最後の99.mpgは、例示であり、実際は最初にbatchファイルのパラメータとして入力した文字をそのまま持ってきます。例えば100.mpg とか 101.mpg とかです。それ以外の文字は固定です。

noname#131670
noname#131670

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

こんな感じですかね。 for /f "skip=6 delims=" %%A in ('bbb f:') do set LINE=%%A&goto NEXT :NEXT set DATA=%LINE:~7,9%   ←この例では8文字目から9文字分を切り出す ccc %DATA% f:\dvd_rtav\vr_movie.vro z:\work\%1 文字の位置の数字は正しくなるように加減して下さい。

noname#131670
質問者

お礼

言われたとおりやってみたら、うまく行きました。手作業でやっていたのを、これで作業自動化により、作業ミスをなくすことができます。ありがとうございました。 ところで、最初の行の for /f の /fは何をやっているのでしょうか?

関連するQ&A

  • MS-DOSのbatchファイルに詳しい方教えてください。Window

    MS-DOSのbatchファイルに詳しい方教えてください。WindowsのDOS窓で使用する次のようなbatchファイルを作成したいのですが、可能でしょうか。よろしくお願いします。 最初のコマンドラインで  aaa 99.mpg と入力します。aaaはbatchファイル名、99.mpgはパラメータであり、可変です。 batchファイルの内容で自動実行されるコマンドは次の2行です。 bbb f: ccc 12345678901 f:\dvd_rtav\vr_movie.vro z:\work\99.mpg 最初のbbb f:は固定です。 次の行の 12345678901 はbbb f:を実行すると、画面に出力される文章の7行目に出てくる Base64: という文字列の次に出てくる11文字のank文字で毎回変わります。最後の99.mpgはbatchファイルのパラメータをそのまま持ってきます。それ以外の文字は固定です。

  • MS-DOSバッチファイルにおけるパラメータ入力

    初歩的な質問で失礼します。 abc.exe という実行ファイルがパラメータとして 「para1,para2,para3」と3つのパラメータを 持っていたします。 そこで、  abc.exe para1 para2 para3 とコマンド投入するのではなく、バッチファイルで実行したいのです。 さらに、実行する際には、 **************************** > abc.exe を実行します > para1 を入力して下さい  (→aaaを入力) > para2 を入力して下さい  (→bbbを入力) > para3 を入力して下さい  (→cccを入力) **************************** といった具合に、各パラメータのキーボード入力を個々に待ち合わせるようにしたいの ですが、このようなことは可能でしょうか? 又、可能な場合バッチファイルはどのように作成すればよろしいでしょうか?

  • シェルの引数を、実行するパラメータに指定するには?

    シェル初心者です。 シェルの実行パラメータを、その中で実行する処理のパラメータに再び指定したいのですが可能でしょうか。 ただし、パラメータの数は可変です。 環境はSolarisです。 aaa.sh aaa bbb ccc aaa.shの中 bbbコマンド aaa bbb ccc ということを行いたいです。 パラメータ数が固定であれば問題なさそうですが 可変の場合、どのような記述をすればよいでしょうか?

  • excel vba複数行入力可能なテキストボックスを上段から複数列に表示

    よろしくお願いします。 現在ユーザーフォーム上に3つのテキストボックス (複数行ではありません)があり、それぞれに文字を打ち込んで、コマンドボタンでセルに転記させているのですが、もっと効率のよい方法はないのかと思い探したもののなかったため質問いたします。 (複数行のセルにはありましたが、複数列のセルに転記がなかったため) 複数行入力可能なテキストボックスに入力された文字を上段から1行ずつA10からC10と列に転記したいのです。 こんな感じです テキストボックス |------| |AAA       |  |BBB       | |CCC       | |------| 複数行入力し(空欄の時もあります)コマンドボタンをクリックすると シート1の     A      B     C ・ 10 AAA   BBB   CCC

  • シェルスクリプト(bash)によるファイルの編集

    シェルスクリプト(bash)によるファイルの編集についてのご相談です。 私にあまりスクリプトの知識がないので申し訳ございませんが、 どなたかお知恵を拝借させてください。 よろしくお願いします。 【条件】 ・以下のような文字列を含むファイルが複数あるとします。 ・そして、その文字列は、ファイル内の不特定の行に存在します。 ※[半角スペース]、[タブ]は実際には便宜上記載していますが、実際は 本当の半角スペース、タブが入ります。 AAA[半角スペース]BBB AAA[半角スペース]CCC AAA[タブ]BBB AAA[タブ]CCC 【やりたいこと】 このとき、 AAA[半角スペース]BBB および AAA[タブ]BBB の行の下に、それぞれ、 AAA[半角スペース]DDD  と   AAA[タブ]DDD を挿入したいのですが、これをスクリプト(コマンド)でどのように行えば よいのかわからずに困っています。

  • UTF-8ファイルの文字化けについて

    UTF-8のファイルをADODB.STREAMを使って読み込むマクロを組みました。 読み込むファイルはいくつかのパターンがあるのですが、 正常に処理できるパターンのファイルと、できないパターンのファイルがあるようなんです。 そのファイルをメモ帳で開いて見比べてみると、 正常に処理できるファイルは 2013,01,25 ・・・ヘッダー行 タイトル1,タイトル2,タイトル3 ・・・タイトル行 aaa,BBB,123           ・・・データ行 bbb,CCC,25 という形式になっており、 エラーになるファイルは、 2013,01,25 ・・・ヘッダー行 "タイトル1","タイトル2","タイトル3" ・・・タイトル行 aaa,BBB,123           ・・・データ行 bbb,CCC,25 というふうに、タイトル行のみがダブルクォーテーションで囲まれていました。 エラーになるファイルは、 ヘッダー行は正常に読み込まれているみたいなのですが、 タイトル行以下が全て文字化けしているようなんです。 やはりダブルクォーテーションの影響なのでしょうか。 ご教授いただけると助かります。 よろしくお願いいたします。

  • CSVファイルの指定部分をエクセルに取り込みたい

    複数のCSVファイルをエクセルに、VBAを使用して取り込みます。 CSVファイルの形式は決まっているのですが、キーワード行から指定行分のみを取り込みたいです。 データ形式は、 A1 aaa bbb ccc B1 aaa bbb ccc C1 aaa bbb ccc A1 a1a b1b c1c  :  : という感じで、キーワードA1行以下から次のキーワードより上のデータをエクセルに取り込みたいです。 どうぞよろしくお願いいたします。

  • unixのコマンドでSQLのようにJOINする

    unixのコマンドでSQLのJOIN(直積)と同じことをする方法はありますか? やりたいのは同じ結合キーが複数行ある場合です。 入力ファイル1(結合キーは1列目) 1,AAA 2,BBB 2,CCC 3,DDD 入力ファイル2(結合キーは1列目) 1,PPP 2,QQQ 2,RRR 出力結果 1,AAA,PPP 2,BBB,QQQ 2,BBB,RRR 2,CCC,QQQ 2,CCC,RRR 結合キー「2」は入力ファイル1にも入力ファイル2にも2行づつ存在するので SQLのJOINと同じように組み合わせのパターン全部を出力し、 結合キー「3」は入力ファイル2には存在しないので出力したくありません。 もし簡単なコマンドがなければawkやperlを使うしかないでしょうか・・・。 環境はHitachi系のunixだったと思います(うろ覚え) ちなみにこういう質問はこのカテゴリ(Linux系OS)で合ってますでしょうか。プログラミングと迷ったのですが・・・。

  • エクセルVBAのprintステートメントについて

    エクセルVBAのprintステートメントについて エクセルVBAからテキストファイルに文字列を書き出す場合、output権限でテキストファイルを開いて、printで一行ずつ書き出すということをやっています。この際、テキストファイルの最終行の次の行に一行を書き出すのではなく、最終行の最後に追記することはできますでしょうか。 例えば、下記のようなテキストファイルの場合、cccの次の行に書き出すのではなく、 cccの直後に文字列を書きたいのです。 よろしくお願いします。 ファイルの始まり aaa bbb ccc <EOF> -- エクセル2003

  • バッチファイルについての質問です

    バッチファイルの質問です。宜しくお願いします。 バッチファイルでテキストファイルの中から指定した文字列が入っている行をとり、指定した文字列を除いた文字列が欲しいのですが、どのようなコマンドを使用すればできるでしょうか? ----------------------- AAAランダム文字列1 BBBランダム文字列2 CCCランダム文字列3 DDDランダム文字列4 EEEランダム文字列5 ----------------------- 上記のようにテキストファイルに書かれていたとして、”ランダム文字列3”という文字だけを取得したいのです。 つたない説明文で申し訳ございませんが宜しくお願いします。

専門家に質問してみよう