-PR-
解決
済み

C++ で DIR コマンド

  • 暇なときにでも
  • 質問No.51865
  • 閲覧数998
  • ありがとう数7
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 59% (194/328)

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

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

  • 回答No.3
レベル11

ベストアンサー率 61% (157/255)

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>
が現在は本流。
補足コメント
A__

お礼率 59% (194/328)

ソースをコンパイルして実行して、DIRの結果が表示されました。
短いけど難しいソースなんですねー。
MS-DOSプロンプトを使う原型が分かりました。
ありがとうございます。
投稿日時 - 2001-03-17 23:50:04
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。
ソースを教えてもらえないと分からないんです。
教えていただいたソースはこの後試してみて
結果をまたここに書きます。
投稿日時 - 2001-03-17 07:53:41
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 37% (570/1525)

1.バッチファイル経由 DIRコマンドを記述したバッチファイルを作成 ShellExecuteなどで作成したバッチファイルを起動 (バッチファイルを動的に作ればどんな処理でも可能) 2.system()関数 Cの標準関数systen()にMS-DOSコマンドを引数で渡す (MS-DOSプロンプトのウィンドウは表示されない) 3.command.comを直接起動 MS-DOSコマンド ...続きを読む
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プロンプトでエラーが起こった時に対応するのは大事ですから。
補足コメント
A__

お礼率 59% (194/328)

ありがとうございます。
でも、教えてくれたことが理解できず、ソースは作れませんでした。
投稿日時 - 2001-03-15 23:06:11


  • 回答No.2
レベル9

ベストアンサー率 30% (25/81)

質問の文章を読んでいて思ったのですが、 MS-DOSプロンプト=C言語 C++言語=Windowアプリ と思ってやしませんか? C++言語でコンソールアプリを書くこともできますよ。 且つ、VC++に関して言えば(VC++5では辛いけど)VC++6ではMFCを使ったコンソールアプリも簡単に出来ます。
質問の文章を読んでいて思ったのですが、
MS-DOSプロンプト=C言語
C++言語=Windowアプリ
と思ってやしませんか?

C++言語でコンソールアプリを書くこともできますよ。
且つ、VC++に関して言えば(VC++5では辛いけど)VC++6ではMFCを使ったコンソールアプリも簡単に出来ます。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ