質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

3095閲覧

Processでコマンド(cmd.exe)を起動して、つぎつぎと文字を入れたい

cancat

総合スコア313

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

2クリップ

投稿2017/08/02 13:52

こんにちは。
Windows10でC#のアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。

###前提・実現したいこと
Processでコマンドラインを起動して、つぎつぎと文字を入れたい場合には、どのようにするのでしょうか?
単純に起動して、引数を渡すのであれば、

###該当のソースコード

C#

1Process process = new Process(); 2process.StartInfo.FileName = "ftp.exe"; 3process.StartInfo.Arguments = " put upfile.txt"; 4process.Start();

でよいかと思うのですが、このあと、processにたいして"quit"と入力して、さらに"exit"と入力して終了したい場合などは、どのようにするものでしょうか?

###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586

です。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

やりたいと思われたのは、ftp のプロンプトに対してコマンドを送り込みたいという事かと思いますが、実はこれはそんなに簡単ではなく

  • プロンプトが現れるのを待つ
  • 結果が正しいか確認する

という処理が必要になります。
ftp コマンドはこのコマンドを与える機能が元々ありますので、一連のコマンドをテンポラリファイル等に記述しておき

ftp -s:commands.txt

というコマンドで実行します。

投稿2017/08/02 14:21

mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2017/08/02 14:27

ありがとうございます。 ftpは例として出しただけで、一般論をお伺いしたく。
mattn

2017/08/02 14:43

Start 前に process.RedirectStandardOutput = true; および process.RedirectStandardInput = true; を実行しておき process.StandardInput.WriteLine("xxx"); でコマンドは送信できるはずです。process.StandardOutput.ReadLine(); で行を読む事も出来ると思います。
cancat

2017/08/02 15:01

ありがとうございます。 process.StandardInput = true; はあるのですがreadonlyで割り当てられませんでした。 process.RedirectStandardInputは見つかりませんでした。
mattn

2017/08/02 15:32

あ、失礼。ProcessStartInfo.RedirectStandardInput の間違いでした。
cancat

2017/08/04 14:29

ありがとうございます。 できそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問