代码之家  ›  专栏  ›  技术社区  ›  Ramy

在python或f中运行带有参数的批处理文件#

  •  3
  • Ramy  · 技术社区  · 16 年前

    我搜索了这个网站,但没有看到与我所寻找的完全匹配的东西。我创建了一个使用我创建的Web服务的独立应用程序。要运行我使用的客户端:

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

    我将如何用python或f_对此进行编码。这看起来应该很简单,但我在网上没有看到任何与我正在寻找的完全匹配的东西。

    3 回复  |  直到 9 年前
        1
  •  8
  •   gradbot    16 年前

    巨蟒是相似的。

    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
    
        2
  •  8
  •   Tomas Petricek    16 年前

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

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

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

        3
  •  2
  •   Huusom    16 年前

    或者可以使用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 interactive将返回

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

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