C言語初心者のためのコマンドプロンプト上での複数コマンド実行方法

このQ&Aのポイント
  • C言語初心者のjovanさんが、SYSTEM関数を使ってコマンドプロンプト上で複数のコマンドを実行する方法を教えてください。
  • SYSTEM関数を使うと、1つのコマンドが実行されるとコマンドプロンプトが終了してしまうため、複数のコマンドを実行するのは難しいです。
  • SYSTEM関数や他の関数を使って、コンパイラのロードやフォルダの移動、コンパイルといった複数のコマンドを実行するプログラムを作成する方法を教えてください。
回答を見る
  • ベストアンサー

SYSTEM関数等を用いて複数のコマンドを打ち込みたい

こんばんは。C言語初心者のjovanといいます。 初心者のため拙い文章になってしまう可能性があることを初めにお詫びしておきます。 現在SYSTEM関数を使って、コマンドプロンプトでコマンドを実行するプログラムを作成しているのですが、少々困ったことになりました。 というのも、 SYSTEM("cl c:\\temp.c"); などと打ち込むと、ダブルクォーテーション内の記述がコマンドプロンプト上で実行され、コマンドプロンプトが終了されますよね? 私がやりたいのはそれだけではなく、(1)コンパイラをロードし、(2)フォルダを移動し、(3)コンパイルというような動作をコマンドプロンプト上で行わせたいのです。 しかしながら、この3つの動作をSYSTEM関数だけで処理するのは、SYSTEM関数は、1つのコマンドがコマンドプロンプトで実行されるとコマンドプロンプトが終了してしまうという性質上不可能だと思います。少なくとも私の知識上では無理です。 というわけで、SYSTEM関数、または他の関数でもいいのですが、コマンドプロンプト上で複数のコマンドを実行するプログラムはどのように作成したらよいのかを教えてくださると幸いです。

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

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

コマンドは & で区切れば複数個書けます。 system("cd \\Windows\\temp & dir & dir D:\\ "); とか。

jovancampa
質問者

補足

C言語の仕組みというよりはDOSコマンドの仕組みを理解してれば解決できた問題でしたね。 C言語関係を検索しても道理でひっかからないわけだ… お陰様で解決することができました。 ありがとうございます。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

つ~か, そもそも「コンパイラをロードする」って, どういう処理のこと? 本当にその順序が必要?

jovancampa
質問者

お礼

ええ、必要。 ただ、system関数の使い方には何ら関係のない回答だから、説明は省略するね。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

SYSTEM関数というのは自作の関数でしょうか? だとすれば、作ったあなたにしか分かりません。 標準にはsystem関数ならありますが、その動作は完全に処理系定義です。 処理系不明の状況では何とも言えません(多分Windowsだと思いますが断定できません)。

jovancampa
質問者

補足

標準ライブラリに組み込まれているsystem関数の事でした。 大文字と小文字の区別を何も考えないで記述してしまいました。 プログラム上は区別することが多いから注意が必要でしたね。以後気をつけます。

関連するQ&A

  • コマンドラインでタイプすることとperlでsystem関数の違いは?

    winでperl5.8を使っています。 コマンドプロンプトで cl test.cとすると、コンパイルできますが perlからsystem("cl test.c")とすると、sys/types.hがありません とエラーになります。 コマンドラインでタイプすることとperlでsystem関数を使う場合とでは どんな違いがあるのでしょうか? CはVC++6を入れています。

  • C言語初心者です。コマンドプロンプトのコンパイルが出来ません。

    C言語初心者です。コマンドプロンプトのコンパイルが出来ません。 教習所ではVisual studio 2008を用いてたので"cl"で出来たのですが、 自宅のパソコンのコマンドプロンプトでsoccer.cというファイルを作り、コンパイラしても「'cl'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」というエラーがでてしまいます。 Visual studioではありません。ノートPCに元から入ってた既存のコマンドプロンプトを使ってます。 なのでソフト名は分かりません。使ってるパソコンはwindowsです。 どなたかコンパイルの方法を教えてください!

  • Cをコマンドプロンプトから実行したい

     今晩は、Eclipse(CDT)でC言語を勉強している初心者です、宜しくお願いします。  WorkSpaceを作成して、そこに実際に作成したファイルを保存しています。  これをもし、コマンドプロンプトから動作させようとすると、どのファイルをどのように呼び出して、実行させて やればよいのでしょうか。  因みにEclipseのフォルダの中には、GNU>gcc>binというフォルダ構成?となっています。  また、GNU、gccのそれぞれの役割みたいなものはどういう意味でしょうか。  コンパイラらしきものというのはわかるのですが、色々と本を調べると、GNU、gccのどちらもコンパイラという風には 書いているのですが.........

  • コマンドプロンプトで一部の処理内容が表示されません

    こんばんは。昨日からC言語に触れ始めた者です。 ネットのC言語初心者講座を参考に、「hello, world」と表示させるソースコードを作成して Cコンパイラ(LSI C-86 試食版)をインストール、Pathやコンパイラの設定を済ませて、 やっとコマンドプロンプト内に「hello, world」と表示させることに成功しました。 ところが、その講座(http://www9.plala.or.jp/sgwr-t/index.html)の中で出題されたある演習問題を コマンドプロンプトで実行してみたところ、何も表示されず改行だけが進むようになってしまいました。 これはおかしい、と先ほどの「hello, world」を実行してみても、やはり何も表示されません。 ソースプログラムから実行モジュールを作成することはできます。でも従来でしたらそのリンクを 実行されたことがコマンドプロンプト内で「lld@link.i」と表示されていたのに、それも無く、真っ黒の 改行だけが行われて実行モジュールができあがるようになってしまいました。 いったい何がいけなかったのでしょう・・・ 「コマンドプロンプト ”表示されない”」でググってみましたが、どうも同じ症状のかたがおられない ようでした。知らず知らずで文字色を黒に変えたので見えなくなったのかなと思ったのですが、 別のエラーメッセージ等は表示されるのでこれも違うようです。 心あたりや解る方がおられましたら何卒よろしくお願いいたします。

  • fork、exec系、wait系のシステムコール(ライブラリ関数)でのシェル

    簡単なシェルを fork、exec系、wait系のシステムコール(ライブラリ関数)を利用して作りたいですがどのようなソースになるでしょうか? 最低限、以下の機能を実現しなければなりません 1.プロンプトを出力する 2.ユーザに端末からコマンドを入力させる 3.新しくプロセスを生成し、そのプロセスが入力されたコマンドのプログラムを実行する 4.そのコマンドの実行(子プロセス)が終了するまでシェル(親プロセス)は、プロンプトを出さずに待つ 5.1に戻る どうやってもうまくいかないので教えていただけないでしょうか

  • WinXPのコマンドプロンプトの強制終了

    WinXP(2台)でコマンドプロンプトからFTPを実行します。 FPTサーバーが見つからないなどFTPがタイムアウトを 待っている状態でコマンドプロンプトの右上の「×」を クリックすると何も言わないでコマンドプロンプトが 終了するパソコンと、 「プログラムの終了-C:\Windows\System32\cmd.exe  このプログラムを終了できません。操作の完了に  ・・・・  「すぐに終了」 「キャンセル」」 のメッセージボックスを表示するパソコンがあります。 (前者のように)このメッセージを表示しないで終了させたいのですが どうやったらよいのでしょうか?

  • c++の関数をfortranから呼びたい

    c++の関数をfortranから呼びたい windowsXPのコマンドプロンプト上で VC2005でコンパイルしたc++の関数を fortranから呼びたいと思います。 fortranのソースはg77でコンパイルします。 (g77とclコマンドは動作することが 確認出来ています。) 簡単なソースとコンパイル方法を教えて 頂きたくお願いします。

  • system関数でatコマンドを呼び出して使用したいのですが

    はじめまして、system関数について質問があります。 TVキャプチャが動作しているマシンがありまして(OSはFedoraCore6) そこでperlでCGIを作成して、その中で予約録画みたいなことがやり たいのですが、CGI中にsystem関数でatコマンドを利用して予約をして みたのですが、うまく動作しません。 $1 = 10; $2 = 20; system(`echo "xxxx.sh"|at $1:$2`); (xxxx.shはmencoderを起動するシェルスクリプト) みたいにしているのですが、atqなどで確認しても予約されていません。 どのようにしたらsystem関数からatコマンドが利用できるのでしょうか? ご教授よろしくお願いします。

  • コマンドプロンプトで

    こんにちは。質問させてください。 いままでPHPをWEBブラウザの処理をMainに作成してきました。 簡単な文字列を整形するプログラムを作りました。 これは画面(ブラウザ)に表示するのではないので コマンドプロンプトで実行したいのですが、 単に c:\work>sample.php と実行すると、 エディタが開いてsample.phpの内容を表示するだけに なってしまい、特に処理が行われていません。 どのようにすればコマンドプロンプトから実行できるのでしょうか? C言語のように実行ファイルをコマンドプロンプトから 実行して処理させるようにしたいのですが・・・・ 質問自体が大きな間違いでしたらすみません。 どうかよろしくお願いいたします。

    • 締切済み
    • PHP
  • コマンドプロンプトからファイル実行について

    コマンドプロンプト初心者です。 説明が下手で申し訳ありませんが、コマンドプロンプトを起動し、C:\Program Filesから辿ってファイルを実行させようとすると、 C:\Programは、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示され、できなくて困っております。 パスがないのかなと思い、試行錯誤してみましたがダメでした。 あとDOS窓はコマンドプロンプトのことですよね?

専門家に質問してみよう