在Python或F#中运行带有参数的batch file

我search了这个网站,但是我没有看到任何与我正在寻找的内容相匹配的东西。 我创build了一个使用我创build的Web服务的独立应用程序。 运行我使用的客户端:

C:/scriptsdirecotry> "run-client.bat" param1 param2 param3 param4 

我将如何去在Python或F#编码。 它似乎应该是非常简单的,但我没有看到任何网上的东西,很符合我所期待的。

Python是相似的。

 import os os.system("run-client.bat param1 param2") 

如果您需要异步行为或重定向的标准流。

 from subprocess import * p = Popen(['run-client.bat', param1, param2], stdout=PIPE, stderr=PIPE) output, errors = p.communicate() p.wait() # wait for process to terminate 

在F#中,可以使用System.Diagnostics命名空间中的Process类。 运行命令最简单的方法应该是这样的:

 open System.Diagnostics Process.Start("run-client.bat", "param1 param2") 

但是,如果您需要提供更多参数,则可能需要先创建ProcessStartInfo对象(它允许您指定更多选项)。

或者您可以使用fsi.exe来调用F#脚本(.fsx)。 鉴于文件“Script.fsx”中的以下代码

 #light printfn "You used following arguments: " for arg in fsi.CommandLineArgs do printfn "\t%s" arg printfn "Done!" 

您可以使用以下语法从命令行调用它:

 fsi --exec .\Script.fsx hello world 

然后FSharp交互将返回

 You used following arguments: .\Script.fsx hello world Done! 

有关msdn的fsi.exe命令行选项的更多信息: http : //msdn.microsoft.com/en-us/library/dd233172.aspx