プロが教える店舗&オフィスのセキュリティ対策術

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

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が見つからない時は、教えて!gooで質問しましょう!