- PR -

コマンドライン引数の内容が受け取れない

投稿者投稿内容
East21
会議室デビュー日: 2005/03/27
投稿数: 8
投稿日時: 2005-11-20 02:43
VB.NET のコンソールアプリケーションにてバッチプログラムを作成しています。
コマンドライン引数に指定した内容(文字)が受け取れません。
VisualStudio 上で実行するとコマンドライン引数が受け取れますが、
EXE から実行すると内容が受け取れないのは、何か設定が悪いのでしょうか。
ちなみに、
command()
Environment.GetCommandLineArgs()
Environment.CommandLine()
を使用して駄目でした。
また、マイクロソフトの情報に StartArgumentプロパティ というのがありましたが、
使い方が良くわかりませんでした。

皆様はどのようにされているのかご教示をお願いいたします。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-11-20 03:08
引用:

East21さんの書き込み (2005-11-20 02:43) より:
VB.NET のコンソールアプリケーションにてバッチプログラムを作成しています。
コマンドライン引数に指定した内容(文字)が受け取れません。
VisualStudio 上で実行するとコマンドライン引数が受け取れますが、
EXE から実行すると内容が受け取れないのは、何か設定が悪いのでしょうか。


念のために確認しますが…
コマンドライン引数はどのようにexeに渡していますか?
East21
会議室デビュー日: 2005/03/27
投稿数: 8
投稿日時: 2005-11-20 10:13
.Net にてプログラム作成が初めてのため、
何もわからず、プロパティのコマンドライン引数に
値を設定しているだけです。

必要な設定があれば、是非教えてください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-20 11:55
引用:

East21さんの書き込み (2005-11-20 10:13) より:

.Net にてプログラム作成が初めてのため、
何もわからず、プロパティのコマンドライン引数に
値を設定しているだけです。


それは、IDE 環境で動かした場合においては有効なはずです。
エントリ ポイントでの引数として見ても何もない状態でしょうか?

コード:

    <STAThread()> _
    Protected Sub Main(ByVal stCmdArgs As String())
        For Each stCmdArg As String In stCmdArgs
            MessageBox.Show(stCmdArg)
        Next stCmdArg
    End Sub


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
East21
会議室デビュー日: 2005/03/27
投稿数: 8
投稿日時: 2005-11-20 12:54
IDE 環境ではメッセージボックスやコンソールに、
コマンドライン引数の内容が反映するのですが、
コンパイル後の exeファイルからの実行ですと、
コマンドライン引数の内容が反映してこないのです。
何か設定することがありますか。
または、バッチファイルのように exe からの実行ですと
コマンドライン引数は使えないのですか。
是非宜しくお願いいたします。

下記のコードを作成して行っています。
Module Module1
Sub main(ByVal CmdArgs() As String)
'コマンドライン引数の表示
Dim cmd As String
For Each cmd In CmdArgs
Console.WriteLine(cmd)
Next
  End Sub
End Module
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-20 13:05
引用:

East21さんの書き込み (2005-11-20 12:54) より:

IDE 環境ではメッセージボックスやコンソールに、
コマンドライン引数の内容が反映するのですが、


ですよね。(^^)

引用:

コンパイル後の exeファイルからの実行ですと、
コマンドライン引数の内容が反映してこないのです。


渡してないからです。
まず、その実行ファイルのショートカットを作ってください。
そのショートカットのプロパティのリンク先のパスの後に引数を書いてください。
以下はメモ帳の例です。

 "C:\WINDOWS\system32\notepad.exe" "C:\Hoge.txt"

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
East21
会議室デビュー日: 2005/03/27
投稿数: 8
投稿日時: 2005-11-20 14:59
有難うございます。コマンドライン引数を受け取ることが出来ました。
ここで初心者の質問ですみませんが、
バッチファイルを作成し、サーバでコマンドを入力し起動をさせるのですが、
起動ファイルはショートカットファイルから行うのですか。

[ メッセージ編集済み 編集者: East21 編集日時 2005-11-20 15:01 ]
笊頭刹那
ベテラン
会議室デビュー日: 2005/10/17
投稿数: 55
お住まい・勤務地: オーストラリア
投稿日時: 2005-11-20 15:06
どうも刹那です、いっつも聞いてばかりなので、自分が分かるものくらいには答えておこうかなって


コマンドラインの渡し方
[li]
[*]対象EXEに対象ファイルをドラッグ&ドロップ
[*]LNKファイルを利用する
[*]コマンドプロンプトを利用する
[*]名前を指定して実行を利用する
[*]バッチファイルを利用する
[/li]

BATでのアプリケーション起動
-----------------------------
echo sample.exeに"c:\programing files\text.txt"をコマンドラインとして渡す
start sample.exe "c:\programing files\text.txt"
echo sample.exeにこのバッチファイルに渡されたコマンドラインの1個目を渡す(0個目はこのバッチファイル自身、よってdel 0%で自殺プログラム作成可能)
start sample.exe %1
----------------------------

です。
_________________
seed of weed
自作したソフトの公開および刹那が難しい・めんどくさい・覚えられないと思った特殊なC#Tipsを公開しています。

スキルアップ/キャリアアップ(JOB@IT)