Как отправить возврат каретки с Windows Netcat? - PullRequest
0 голосов
/ 30 марта 2010

Я хочу ввести текст непосредственно в приглашение Powershell, а не трубу в текстовом файле.

Foo`r не работает для меня. Например:

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

но то, что я действительно хотел бы сделать, это просто

.\nc.exe -u  192.168.1.247 2639

затем начните вводить подсказку.

1 Ответ

1 голос
/ 30 марта 2010

Попробуйте:

"Foo`ndoes work for me"

Если вам нужна полная последовательность CRLF, то:

"Foo`r`ndoes work for me"

Обратите внимание, что символы escape-символов работают только в строках с двойными кавычками, а не в строках с одинарными кавычками.

Обновление: Перенаправление в < не поддерживается в PowerShell в настоящее время, поэтому вы можете получить stdin для exe только из интерактивного приглашения, используя конвейер. Возможно ли, что nc.exe ожидает, что другой символ (или escape-символ) завершит ввод? Я знаю, что консольные exe-файлы могут получать stdin из PowerShell. Если у вас есть компилятор 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>
...