0

テキスト ファイルにパイプするのではなく、Powershell プロンプトにも直接入力したいと考えています。

Foo`r は私にはうまくいきません。例えば:

echo "RJ`r`n" | .\nc.exe -u  192.168.1.247 2639

しかし、私が本当にやりたいことは

.\nc.exe -u  192.168.1.247 2639

次に、プロンプトへの入力を開始します。

4

1 に答える 1

1

試す:

"Foo`ndoes work for me"

完全な CRLF シーケンスが必要な場合:

"Foo`r`ndoes work for me"

エスケープ文字は、単一引用符で囲まれた文字列ではなく、二重引用符で囲まれた文字列でのみ機能することに注意してください。

更新:現時点ではリダイレクト<は PowerShell でサポートされていないため、パイプラインを使用して対話型プロンプトから exe に stdin を取得することしかできません。nc.exe が入力を終了するために別の文字 (またはエスケープ文字) を期待している可能性はありますか? コンソール exe が PowerShell から stdin を受け取ることができることを知っています。C# コンパイラをお持ちの場合は、次のソース (csc echostdin.cs) をコンパイルすることでこれを確認できます。

using System;
public class App
{
  public static void Main()
  {
    int ch;
    while ((ch = Console.In.Read()) != -1)
    {
      Console.Write((char)ch);
    }
  }
}

次に、exe を実行します。

PS> "foo`r`n" | .\echostdin.exe
foo

PS>
于 2010-03-29T22:40:12.667 に答える