2014-01-11 3 views
0

Я пытаюсь запустить сценарий tcl в командной оболочке, чтобы я мог воспользоваться некоторыми функциями powershell, а именно, темой, чтобы отображать вывод скрипта в консоли и записывать его на файл в реальном времени в Windows.C# PowerShell запускает скрипты без PowerShell

Вопрос заключается в том, что мне нужно вызвать интерпретатор Tcl (tclsh) и предоставить ему TCL скрипт "C:\myScript.tcl" с аргументами --arg1 arg1 --arg2 arg2 ...

Таким образом, команда, которую я могу запустить в CMD процесса имеет вид :

tclsh "C:\myScript.tcl" --arg1 arg1 --arg2 arg2 

Я попытался создать новый процесс и запуск PowerShell, что-то вроде:

System.Diagnostics.ProcessStartInfo procStartInfo = 
       new System.Diagnostics.ProcessStartInfo("powershell", command); 

, где команда tclsh "C:\myScript.tcl" --arg1 arg1 --arg2 arg2

или

System.Diagnostics.ProcessStartInfo procStartInfo = 
       new System.Diagnostics.ProcessStartInfo("cmd", command); 

где команда /k powershell.exe tclsh "C:\myScript.tcl" --arg1 arg1 --arg2 arg2

но те не работают. Я либо получаю tclsh.exe : Parameter -command is specified already., либо просто ничего не запускает.

Что было бы лучшим способом достичь этого? В идеале я хотел бы иметь возможность выполнить это:

tclsh "C:\myScript.tcl" --arg1 arg1 --arg2 arg2 | tee "C:\myOutFile.txt" 

и открыт для других предложений. Я знаю утилит Windows, которые можно загрузить и установить для выполнения функции tee, но я не хочу устанавливать какие-либо сторонние инструменты для этого.

Идеи ??

Спасибо!

+0

'but the dont work' - Вы забыли сообщить нам, какое сообщение об ошибке вы получаете. –

+0

Итак, вы используете 'cmd',' powershell' и 'tclsh', в то время как все, что вам нужно, это захват вывода' tclsh' и одновременно запись его в файл? По крайней мере, вы можете избавиться от 'cmd' здесь. Это бесполезно и ненужно. – Joey

+0

Обновление: Ошибки, которые я получаю, либо: "tclsh.exe: Параметр-команда уже указана." или он просто ничего не запускает. Вопрос обновлен. – radensb

ответ

0

Запуск

powershell "&{ tclsh --arg1 arg1 --arg2 arg2 | Tee-Object C:\myoutfile.txt }" 

должен работать, кроме того вы, как правило, не имеют разрешения на запись C:\.