Запуск пакетного файла с параметрами в Python ИЛИ F # - PullRequest
3 голосов
/ 27 мая 2010

Я искал сайт, но не увидел ничего, что соответствовало бы тому, что я искал. Я создал отдельное приложение, которое использует созданный мной веб-сервис. Для запуска клиента я использую:

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

Как мне написать код в Python или F #. Кажется, это должно быть довольно просто, но я не видел в Интернете ничего, что соответствовало бы тому, что я ищу.

Ответы [ 3 ]

8 голосов
/ 27 мая 2010

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
8 голосов
/ 27 мая 2010

В F # вы можете использовать класс Process из пространства имен System.Diagnostics. Самый простой способ выполнить команду должен быть таким:

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

Однако, если вам нужно предоставить больше параметров, вам может понадобиться сначала создать объект ProcessStartInfo (он позволяет указать больше параметров).

2 голосов
/ 28 мая 2010

Или вы можете использовать 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!

Дополнительную информацию о параметрах командной строки fsi.exe можно найти в msdn: http://msdn.microsoft.com/en-us/library/dd233172.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...