C#PowerShell运行非PowerShell脚本

时间:2014-01-11 00:36:24

标签: c# windows tcl powershell-v2.0 tee

我正在尝试在powershell中运行一个tcl脚本,以便我可以利用一些powershell功能,即tee功能在控制台中显示脚本输出并在Windows中实时记录到文件。

问题是我需要调用tcl解释器(tclsh)并为其提供带参数"C:\myScript.tcl"的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功能,但我不想安装任何第三方工具来执行此操作。

想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

运行

powershell "&{ tclsh --arg1 arg1 --arg2 arg2 | Tee-Object C:\myoutfile.txt }"
除了你通常没有C:\的写权限外,

应该有用。