Tôi cần thực thi tập lệnh PowerShell từ bên trong C#. Kịch bản lệnh cần các đối số dòng lệnh.Thực thi PowerShell Script từ C# với các đối số dòng lệnh
Đây là những gì tôi đã làm cho đến nay:
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(scriptFile);
// Execute PowerShell script
results = pipeline.Invoke();
scriptFile chứa một cái gì đó như "C: \ Program Files \ MyProgram \ Whatever.ps1".
Tập lệnh sử dụng đối số dòng lệnh như "-key Value" trong khi Value có thể giống như một đường dẫn cũng có thể chứa dấu cách.
Tôi không làm việc này. Có ai biết làm thế nào để vượt qua các đối số dòng lệnh để một kịch bản PowerShell từ bên trong C# và đảm bảo rằng không gian là không có vấn đề?
tôi vẫn dường như có vấn đề rằng nếu giá trị là cái gì đó như c: file \ program \ myprogram, chìa khóa được thiết lập để c: \ program. :( – Mephisztoe
Đừng bận tâm, đôi khi nó giúp ích khi bạn biết cách phân chia chính xác các chuỗi .--) Cảm ơn bạn một lần nữa, giải pháp của bạn đã giúp tôi giải quyết vấn đề của mình! – Mephisztoe
@Tronex - bạn nên xác định khóa làm tham số cho tập lệnh của mình. PowerShell có một số công cụ dựng sẵn tuyệt vời để làm việc với các đường dẫn. Có thể hỏi một câu hỏi khác về điều đó. @ Kosi2801 có câu trả lời đúng để thêm thông số. –