アプリ版:「スタンプのみでお礼する」機能のリリースについて

using System;
class test
{
public static int Main(string[] args)
{
int x = args.Length;
for (int i = 0; i < x; i++)
Console.WriteLine("{0}, {1}", i, args[i]);

return 0;
}
}

上記のプログラムをvisual c# 2010 expressで
ビルドした後、コマンドプロンプトから
test.exe aaa bbb ccc

と入力し引数を渡して呼び出そうとしたのですが、
「'test.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と表示されうまくいきませんでした。
test.csを保存したうえで今度はフルパスでの入力や、
csc test.csなども試してみましたが、ダメでした。

参考書には「ビルドをすることでexeの実行ファイルが作成される」と書かれているのですが、
PC内にtest.exeは見当たりません。

コマンドライン引数が渡せないのは実行ファイルが生成されていないためだと思うのですが、
まだ始めたばかりで解決の糸口もわからない状況です。
何かヒントになるようなことでもいいので教えていただけると助かります。

A 回答 (5件)

プロジェクトはどのようにして作られてます?


私が使ってるのはVisual Studio 2010なので参考程度にしかならないかもしれませんが
C#コンソールアプリケーションのプロジェクトを新規作成した際にできるファイルはProgram.csでビルドして作成される実行ファイルは プロジェクト名.exe なんですけど。

↓はプロジェクト名 ConsoleApplication1 で作成される実行ファイルは ConsoleApplication1.exe
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}

この回答への補足

普段は新しいプロジェクトから「空のプロジェクト」を開き
「コードファイル」を追加して使用しています。

コンソールアプリケーションからプロジェクトを新規作成してみたのですが、
やはりコマンドプロンプトから引数を渡して呼び出すことができません。
いったん基本設定に戻し、ビルドの出力元を表示すると、
確かにConsoleApplication1.exeが確認できるのですが、スタートメニューの
エクスプローラからコンピュータの検索をしてもファイルが見つかりません。

補足日時:2012/07/22 13:18
    • good
    • 0

作成されたexeの在るフォルダに移動していないんではないでしょうか?


コンソール画面で、DIR コマンドでexeが存在するか確認しましたか?
通常、Visual Studio 2010 でコンパイルした場合、exeファイルは
ソースの在るフォルダの下のbin\Debug、または bin\Release フォルダに作成されます。

この回答への補足

>DIR コマンドでexeが存在するか確認しましたか

DIRコマンドでビルド時に表示された出力元のパスを入力してexeを確認したところ、
「指定されたパスが見つかりません。」と表示されました。
指摘していただいたようにexeのあるフォルダに移動していないことが原因だと思います。
作成したexeのフォルダへ移動するにはどのようにすれば良いでしょうか?


>ソースの在るフォルダの下のbin\Debug、または bin\Release フォルダに作成されます。

Microsoft Visual C# 2010のprogramsというフォルダにソースコードを保存してあるのですが、
フォルダの下にDebugやReleaseといったフォルダはありませんでした。
ソリューションエクスプローラのすぐ下にある
「すべてのファイルを表示」というアイコンをクリックしたところ、
binというフォルダが表示され、そこにDebugとReleaseがありました。これは関係ありませんか?

補足日時:2012/07/22 20:17
    • good
    • 0

>コンソールアプリケーションからプロジェクトを新規作成してみたのですが、


>やはりコマンドプロンプトから引数を渡して呼び出すことができません。

具体的にどう実行しようとしたんですか?
ConsoleApplication1.exeがないディレクトリで実行しようとしたとかいうオチのような気がするんですけど・・・

>いったん基本設定に戻し、ビルドの出力元を表示すると、
>確かにConsoleApplication1.exeが確認できるのですが、スタートメニューの
>エクスプローラからコンピュータの検索をしてもファイルが見つかりません。

「コンピュータの検索」ってコンピュータを検索ものでファイルを探すものじゃなかったような・・・

ビルド時に
------ ビルド開始: プロジェクト: ConsoleApplication1, 構成: Debug x86 ------
ConsoleApplication1 -> C:\Users\~\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
========== ビルド: 正常終了または最新の状態 1、失敗 0、スキップ 0 ==========

のようなログが出力されると思うのですが、そこに出力されているディレクトリは探してみたんでしょうか?

なんだか基本的な入門書から始められた方がよさそうな。

この回答への補足

>具体的にどう実行しようとしたんですか?

プログラムを作った後スタートメニューのアクセサリからコマンドプロンプトを呼び出し
プロジェクト名(ConsoleApplication1.exe aaa bbb ccc)と入力しました。
ただおそらく原因はご指摘のようにディレクトリのない場所で実行しようとしたためだと思います。


>ディレクトリは探してみたんでしょうか?

ConsoleApplication1.exeの保存されているディレクトリは見つかったのですが、
そこへソースコードを保存してもコマンドプロンプトからパスが通りません。
ディレクトリのある場所からの実行というのはどのようにすれば良いでしょうか?

補足日時:2012/07/22 20:23
    • good
    • 0

>ただおそらく原因はご指摘のようにディレクトリのない場所で実行しようとしたためだと思います。



文意が変わっちゃってますが・・・
「ディレクトリのない場所で」ではなくて「ConsoleApplication1.exeのないディレクトリで」なんですけど・・・
ディレクトリの意味わかってらっしゃいますか?(わからなかったら調べてください)

>ConsoleApplication1.exeの保存されているディレクトリは見つかったのですが、
>そこへソースコードを保存してもコマンドプロンプトからパスが通りません。

そんなことをしてもパスは通りません。
ソースファイルは実行ファイルを作成するための元となるものですが実行ファイルを実行することには何の関係もないです。

>ディレクトリのある場所からの実行というのはどのようにすれば良いでしょうか?

cdで、ConsoleApplication1.exeのあるディレクトリに移動してください。
コンソールアプリケーションをつくるのならcmd.exeの最低限のコマンドは覚えた方がいいと思いますよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。
何とかパスを通すことができました。

お礼日時:2012/07/23 20:06

プロジェクトの中の実行ファイルができる、


binフォルダ下のdebugフォルダの名前指定が長すぎて面倒なときは、
エクスプローラでdebugフォルダのとこを右クリック、プロパティで出てくる
「場所」ってとこのc:\から始まるところをドラッグしてコピー、
コマンドプロンプトを起動して
「cd (スペース)」と入力、右クリックして張り付けると速いですよ。

或いはVisualStudio2010で作るプロジェクトなどは
Cドライブ直下にWorspaceみたいな名前のフォルダを作って
そこでプロジェクトを作るようにしたり、
できた実行ファイルだけをc:\Workspaceにコピーしたりすると
場所が分かりやすくて
cdなどのDOSコマンド入力も
実行そのものもラクかもしれません。



<以下はおまけで>
あとはプログラムのreturn 0;の一つ前の行に
Console.ReadLine();
を入れて、
VisualStudi2010のメニュー[プロジェクト]-[アプリケーション名のプロパティ]で開く画面の中に
デバッグというタブが左側に出てくるのでそれをクリック、
コマンドライン という項目に aaa bbb ccc と実行したいアーギュメント(引数)を随時入力してあげて保存、
ビルドした後
緑の横△(実行)ボタンを押すとコマンドプロンプト(コマンドコンソール)画面が残った上に結果も見れて
ちょっとハッピーになれるかもしれません。
    • good
    • 0
この回答へのお礼

コマンドプロンプトへのパスの貼り付け方や、
開始オプションを利用した引数の受け渡しなど
丁寧に教えていただきありがとうございました。

お礼日時:2012/07/23 20:12

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