- ベストアンサー
DOSコマンドの結果確認
初めての投稿なので至らない点もあると思いますが、よろしくお願いします。 先日、会社の上司から課題をいただきました。 その内容が「DOSコマンドを使用して新しくディレクトリを作成・削除する」でした。 ネットでコマンドを調べて作成や削除はできたのですが、上司に報告したところ「リダイレクトで成功した結果が欲しい」と言われました。 コマンドが失敗した場合は失敗のメッセージがリダイレクト先に出力されるのですが、成功の場合はメッセージが出力されませんでした。 それを上司に報告したところ、「絶対に成功のメッセージを出力される方法があるから調べなさい」といわれました。 他のコマンドでは「コマンドが正常に終了しました」の成功メッセージがあるのは発見したのですが、ディレクトリ作成の「mkdir」にはそれにあたるメッセージがどうしても見つけられませんでした。 もしも方法がありましたら教えていただけないでしょうか。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
処理をして特定のメッセージを表示させたいのならバッチコマンドを自作するしかありません。 if existというキーワードがあり if exist C:\Windows echo "Exist file" とすれば出力されます。 まあ、windowsディレクトリはどのマシンにもありますから、 この一文をコピペしてコマンドプロンプトで実行すれば確認できます。 目的のディレクトリは任意ですから引数付きのバッチが必要になります。 >if文で成功失敗を判定してprintfで結果を書き込むということでしょうか それはC言語のソースでそこまで手を出したら一般人は死にます。 バッチコマンドはもっと手軽に作成できます。 あなたの課題は最短で2行でできます。ヒントはこんなところですね。
その他の回答 (5)
- Tacosan
- ベストアンサー率23% (3656/15482)
えぇと.... その上司の「リダイレクトで成功した結果が欲しい」や「絶対に成功のメッセージを出力される方法がある」って, 日本語として破綻してるんだけど.... さておき, mkdir *そのもの*に「成功のメッセージを出力させる方法」はありません. って~か, 「何も表示されないなら成功でいいじゃん」と思ってしまうのは UNIX に漬かりすぎなんだろうか....
お礼
回答ありがとうございます。 日本語は、私が拙いだけですので勘弁してください・・・。 「mkdir」には成功のメッセージ出力はないのですか。 わかりました。 それを念頭に置いて課題に挑みたいと思います。
出題者の真意は図りかねますが... こういうのでもいいのかなぁ。1コマンドではないです。 http://www.fpcu.jp/dosvcmd/bbs/log/delerase/3-0897.html コマンドは実行後の結果をに ERRORLEVEL に値を残すので 直後のIF文で判定できるのでそれを使ってメッセージを作る、 というバッチを利用するものです。
お礼
回答ありがとうございます。 「ERRORLEVEL」とはエラー内容を示す番号のことなんですよね? 今回の課題で必要なのは「成功した事を示す結果」でした。 成功を示す番号も「ERRORLEVEL」に入るのですか? 少し自分で調べて見ます。 今後の課題にも活用できそうなアドバイスをありがとうございました。
って、それを調べるのも課題のうちなんだろうに。
お礼
ご指摘ありがとうございます。 確かにそのとおりです。 しかし、この休みで自分なりに本やネットで調べた結果、自分がした質問に対する答えがみつかりませんでした。 このまま答えが見つからないまま上司に報告するよりは、と思い質問させていただきました。
mkdir に成功したなら次にdirすればサブディレクトリ(サブフォルダ)が見えるべよ。 複数のコマンドを実行させる方法はここではナイショだ。 別に難しくないけど。
お礼
私の書き方が悪くて誤解させてしまったようですみません。 「dir」コマンドでも作成したディレクトリの確認はできるのですが、上司は成功したことが一目でわかる「メッセージ」が欲しいそうなのです。 例えば、コマンドを入力してエラーが起きた場合はエラーメッセージが出て内容はともかく失敗したことはすぐにわかりますよね? それの成功バージョンが欲しいのです。 無理なのでしょうか?
- yamato1957
- ベストアンサー率24% (2279/9313)
リダイレクトさせてファイルに書き出したら?。 http://wwwst.sc.musashi-tech.ac.jp/~bulletin/msdos.htm
お礼
回答ありがとうございます。 初心者なので頓珍漢な事を言っていたらすいません。 リダイレクト先に出力されるのはコマンドプロンプトの画面に出力されたものだけではないのですか? 「mkdir」のコマンドが成功した場合は画面にはメッセージは何も出力されないので、リダイレクトで出力しても出力先には何も出力されないのではないのですか?
補足
すみません、早とちりをしてしまったようです。 書いていただいたURL先の「リダイレクト」の項目にある「ソースコードを作成して書き込む」を応用して、if文で成功失敗を判定してprintfで結果を書き込むということでしょうか? できればDOSコマンドをコマンドプロンプトに打ち込むだけで成否のメッセージを出力したいのですが無理でしょうか?
お礼
回答ありがとうございます。 「if exist」ですか。 少しだけ調べてみましたが、このコマンドを使えば課題が出来そうです。 「バッチコマンド」というのも調べつつ、課題をこなしたいと思います。 とても助かりました。 ありがとうございます。