Я пытаюсь запустить сценарий 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, но я не хочу устанавливать какие-либо сторонние инструменты для этого.
Идеи ??
Спасибо!
'but the dont work' - Вы забыли сообщить нам, какое сообщение об ошибке вы получаете. –
Итак, вы используете 'cmd',' powershell' и 'tclsh', в то время как все, что вам нужно, это захват вывода' tclsh' и одновременно запись его в файл? По крайней мере, вы можете избавиться от 'cmd' здесь. Это бесполезно и ненужно. – Joey
Обновление: Ошибки, которые я получаю, либо: "tclsh.exe: Параметр-команда уже указана." или он просто ничего не запускает. Вопрос обновлен. – radensb