2013-12-09 3 views
0

У меня есть консольное приложение C#, построенное с использованием последней платформы .NET.Как запустить локальный VBScript с аргументами из консольного приложения C#?

Как я могу запустить/начать местные .vbs файл с аргументами (например) из приложения:

"C:/my folder/import.vbs" agr1 agr2 

ответ

4
System.Diagnostics.Process.Start(
    @"C:\my folder\import.vbs", 
    String.Format("{0} {1}", agr1, agr2)); 
1

Используйте cscript.exe, чтобы запустить его, если вы не хотите, отображаются всплывающие окна, в противном случае вы можете использовать Wscript:

cscript import.vbs agr1 agr2 

вы можете сделать это из C# с помощью System.Diagnostics.Process.Start и ProcessStartInfo объектов:

var si = new System.Diagnostics.ProcessStartInfo() { WorkingDirectory = @"C:\temp\", Arguments = "import.vbs arg1 arg2", FileName="cscript.exe" }; 
var proc = System.Diagnostics.Process.Start(si); 
proc.WaitForExit(); 

Вы также можете запустить import.vbs напрямую, и Windows будет использовать хост сценария по умолчанию для его выполнения. Просто настройте эту строку следующим образом: скриптовый движок

var si = new System.Diagnostics.ProcessStartInfo() { WorkingDirectory = @"C:\temp\", Arguments = "arg1 arg2", FileName="import.vbs" }; 

по умолчанию WScript, что означает, что если ваш скрипт имеет всплывающие окна, они будут отображаться и будет вызывать скрипт привал ожидающего подтверждения пользователя/взаимодействие.

Если вы запустите его через cscript, любое всплывающее окно, сгенерированное скриптом, будет подавлено.

3
static void Main(string[] args) 
    { 
     Process process = new Process(); 
     ProcessStartInfo start = new ProcessStartInfo(); 
     start.FileName = @"C:\my folder\import.vbs"; 
     start.Arguments = "agr1 agr2"; 
     process.StartInfo = start; 
     process.Start(); 
    } 
0

Вы можете использовать Process.Start. Я использовал его для скриптов в прошлом.

Смежные вопросы