Получите ввод от пользователя, используя ReadLine в c# коде, который выполняется как часть скрипта PowerShell в PowerShell ISE - PullRequest
1 голос
/ 09 января 2020

Мне нужно запросить у пользователей ввод в C# части кода, но он не работает для меня (автоматически вводит пустой ввод) при запуске из PowerShell ISE. Код работает, как и ожидалось, при запуске из обычной командной строки PowerShell (запрашивает имя)

$id = get-random
$code = @"
using System;
using System.Linq;
namespace Application
{
    public class Program$id
    {
        public static void Main()
        {
            Console.WriteLine("Please enter your sweet name....");
            String name = Console.ReadLine();
            Console.WriteLine("Hello *"+name+" %" );
        }
   }
}
"@
Add-type -TypeDefinition $code -Language CSharp
iex "[Application.Program$id]::Main()"

При запуске в ISE вывод выглядит следующим образом (обратите внимание, что нет возможности предоставить ввод):

       PS C:\Users\Pavithra Kathirvel\Desktop> C:\Users\Pavithra Kathirvel\Desktop\demo.ps1
       Please enter your sweet name....
       Hello * %

1 Ответ

0 голосов
/ 09 января 2020

Как новичок, начните с основ C# и powershell. Если вы сможете использовать один, вам будет легче выучить другой. Также есть части, которые в PowerShell быстрее, чем в c# и меньше кода.

Если вы все еще хотите выполнить свой код C# в PowerShell, посмотрите эту ссылку, он запустит скрипт из файла .cs Запустите файл C# .cs из скрипта PowerShell

Также здесь действительно хороший учебник по использованию c# в powershell: https://blog.adamfurmanek.pl/2016/03/19/executing-c-code-using-powershell-script/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...