MS-DOSプロンプトで dir と入力すれば、フォルダ内の
様子がMS-DOSプロンプトに表示されるけど、
C++ で、MS-DOSプロンプトで dir と入力したのと同じ
様にするにはどういうプログラムを作ればいいのですか?
別の言い方で書くと、実行すればMS-DOSプロンプトが
起動し、dir と入力されて dirコマンドが実行される
というファイルを作るソースが知りたいんです。
dirコマンドが実行される対象となるディレクトリは
どこでもいいんです。
C++ のプログラムでも、ディレクトリ構造を出力することが
出来ると思うんだけど、MS-DOSプロンプトでやってみたいんです。
どうしてそんなことがしたいのかというと、C++ が難しそうだから
という理由なんです。
例えば、ファイルコピーを自動化するプログラムを作る時、
C++ のプログラムの出力をMS-DOSプロンプトへ渡す方法を知っていれば、
MS-DOSプロンプトでのコピーは copy コピー元 コピー先
という簡単な書式だから、ファイルコピーを自動化するプログラムも
簡単に作れそうだなと思ったんです。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

Borland系であれば、



#include <stdlib.h>
#include <cstring.h>
int main(int, char** argv)
{
*argv++; // まず自分のプログラム名はパス
// 後々の独自の拡張を考えてMemcopy などは使わない
string s="dir ";
while (*argv) {
s += *argv++;
s += ' ';
}

system(s.c_str());
return 0;
}

#include <cstring.h>

#include <string>
が現在は本流。

この回答への補足

ソースをコンパイルして実行して、DIRの結果が表示されました。
短いけど難しいソースなんですねー。
MS-DOSプロンプトを使う原型が分かりました。
ありがとうございます。

補足日時:2001/03/17 23:50
    • good
    • 0
この回答へのお礼

ありがとうございます。
ソースを教えてもらえないと分からないんです。
教えていただいたソースはこの後試してみて
結果をまたここに書きます。

お礼日時:2001/03/17 07:53

質問の文章を読んでいて思ったのですが、


MS-DOSプロンプト=C言語
C++言語=Windowアプリ
と思ってやしませんか?

C++言語でコンソールアプリを書くこともできますよ。
且つ、VC++に関して言えば(VC++5では辛いけど)VC++6ではMFCを使ったコンソールアプリも簡単に出来ます。
    • good
    • 0

1.バッチファイル経由


DIRコマンドを記述したバッチファイルを作成
ShellExecuteなどで作成したバッチファイルを起動
(バッチファイルを動的に作ればどんな処理でも可能)

2.system()関数
Cの標準関数systen()にMS-DOSコマンドを引数で渡す
(MS-DOSプロンプトのウィンドウは表示されない)

3.command.comを直接起動
MS-DOSコマンドはcommand.comと言うプログラムが処理するのでcommand.comに直接コマンドを渡せば実行可能。
command.comはCreateProcess()で起動。

etc...
方法はいくらでもあります。

以下,老婆心ながら…
コピーならCopyFile(),ディレクトリリストならFindFirst()FindNext()FindClose()など便利なAPIがいっぱいあるのでそれを使って自前でウィンドウ描画した方がエラー処理とか楽です。
MD-DOSプロンプトでエラーが起こった時に対応するのは大事ですから。

この回答への補足

ありがとうございます。
でも、教えてくれたことが理解できず、ソースは作れませんでした。

補足日時:2001/03/15 23:06
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語でMS-DOSプロンプト入力でプリンタに出力する方法は?

OS/Win98でVC++を使ってC言語を学習している初心者です.

C言語のプログラムでMS-DOSプロンプト上のコマンド入力において
プリンタに出力する方法を知りたいです.

たとえばMS-DOSプロンプト上で

C:>[プログラム名][ファイル名(XXX.txt)]

と入力すればプリンターにおいて、入力した[ファイル名(XXX.txt)]が
出力されるようなプログラムを作成したいです.
主にプログラムの流れをどのようにすれば良いか知りたいです.

宜しくお願いします.

Aベストアンサー

補足読みました...
 そうなると、プリンタドライバを使っての印刷になりますので、簡単には出来ません。

 全部書いてしまうと、プログラムを載せる事になってしまうので、主な流れとその時に調べるキーワードを列挙します。
----ここから
1.VC++のプロジェクトの新規作成を選択して、プロジェクトを作成する
 ヒント:沢山あるが、今回の様なプログラムでは、『Win32 Console Application』がお薦め、その後のチェックでは『MFCを使用する』が必須(楽をしたいなら)です。

2.コマンドラインパラメータを取得する
 ヒント:TCHAR* argv[], TCHAR* envp[]あたりを調べる

3.コマンドラインから取得したファイルを調べる
 ヒント:そのファイルが存在するかどうかが重要

4.プリンタのハンドルを作成する
 ヒント:CreateDC この時に、プリンタ名を使用するので、そのプリンタ名の取得がちょっとやっかい

5.コマンドラインからのファイルを開く
6.一行読込む
7.プリンタハンドルに一行書込む
 ヒント:TextOut
8.6-7を繰り返す(改頁等の処理が入るとちょっと面倒)
 ヒント:StartPage/EndPage
9.ファイルを閉じる
10.印刷を終わる
 ヒント:EndDoc
11.ハンドルを解放する
 ヒント:DeleteDC
12.プログラムを終了させる
----ここまで

 ヒントで、関数名になっている物は、その関数名で、ヘルプを検索すれば使用方法が出て来ます。
 ちょっと高いのですが、Windows95 APIバイブル1(9600円)を購入すれば、印刷の仕方が書かれています。参考になると思います。

補足読みました...
 そうなると、プリンタドライバを使っての印刷になりますので、簡単には出来ません。

 全部書いてしまうと、プログラムを載せる事になってしまうので、主な流れとその時に調べるキーワードを列挙します。
----ここから
1.VC++のプロジェクトの新規作成を選択して、プロジェクトを作成する
 ヒント:沢山あるが、今回の様なプログラムでは、『Win32 Console Application』がお薦め、その後のチェックでは『MFCを使用する』が必須(楽をしたいなら)です。

2.コマンドラインパラメ...続きを読む

QMS-DOSプロンプトの画面で:を出す方法

Meのリカバリに伴う作業でMS-DOSプロンプトの画面でA:>のあとに
DIR C:
と入力したい(ディレクトリの内容一覧)のですが、:
の出し方がわかりません。
どこのキーで出てくるのでしょうか。

Aベストアンサー

こんばんは
起動時にキーボードの種類は問われませんでしたか?
半角/全角を選択し、日本語キーボードを選択している場合は、通常の入力方法と同じはずです。
もし、英語キーボードを選択している場合は、確か”shift”+”;”だったと思います。
ウル覚えですみません。

QMS-DOS(コマンドプロンプト)の位置

C++なんですが、
実行途中にコマンドプロンプトで数値を入力して
描画をさせてるんですが、
描画範囲とコマンドプロンプトの位置が重なってしまい、
困っています。
C++でコマンドプロンプトの位置や大きさを指定することってできないのでしょうか?

Aベストアンサー

GetActiveWindow で「コマンドプロンプト」のウィンドウハンドルが取れるなら, それに対して何らかのメッセージを飛ばせば動かないかな?
いや, 単なる思いつきなんだけど.
でも, むしろ「だったら入力もダイアログボックスかなんか使って自前で全部処理しろ」の方が普通かも知んない.

QMS-VisualC++:コンパイル後実行をするとDOS窓が一瞬だけ現れて消えるのをずっと表示させたいのですが。

cout << t << endl;

return 0;

}

単に変数を画面に表示させるだけのプログラムなのですが、Build後、実行すると一瞬DOS窓が立ち上がり表示された後すぐ消えてしまいます。この表示したDOS窓を持続させたいときはどうすればいいのでしょうか。おそらくものすごく基本的なことなのでしょうが、Linux上でしかC++をしてないのでわかりません。

Aベストアンサー

!マークのボタンを押して実行したら、

Press Any Key

って出てきて止まりませんでしたっけ?

Q既存のCプログラムをMS Visual C++へ移行して実行したい

同じような質問がでていましたら、すみません。

いままでWS(unix)で作っていたC言語のプログラムをWindowsで実行しようと
しています。
Microsoft Visual C++ 6.0 Proを購入し、
新規でプロジェクトを作成するところで止まってしまいました。

「プログラムをコンパイルして、あるバイナリファイルを読み込み、
指定したファイルへ結果を書き込む」
という操作がしたいのですが、プロジェクトの種類はどれにすればいいのでしょうか?

また、ファイルを読み込む際、メインと関数は別のファイルになっているの
ですが、コンパイルはどのように指定すればいいのでしょうか?

もうひとつ、今までargv[]で入出力ファイルを指定していました。
# (メイン)(入力ファイル) (出力ファイル)のように
この処理はVC++でできるのでしょうか?

VC++の入門の本を購入したのですが、Cのプログラムについては
なかなか載っていないので困っています。
よろしくお願いします。

Aベストアンサー

> プロジェクトは出来たのですが、***.cppと、StdAfx.hというファイルが
> 出来ました。

VC6.0 は良く憶えてないのですが、プロジェクトを新規作成する過程で、MFC を
使う/使わないの選択がありましたか?

もしあれば、「使わない」としてください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報