gpt4 book ai didi

.net - F# 环境集成(用于脚本)

转载 作者:行者123 更新时间:2023-12-02 06:03:01 24 4
gpt4 key购买 nike

我喜欢 F#,我想通过编写一些脚本来自动执行一些烦人的任务来练习一下。

我如何像从 CMD 或 PowerShell 中那样与其他程序交互例如 RoboCopy 或 iisreset 或 net?

我知道我可以使用 System.Diagnostics.Process 自己完成,但很难正确完成(返回代码、标准流等)。

必须有一个图书馆,有什么建议吗?

最佳答案

您想使用 System.Management.Automation命名空间。下面是从 F# 运行一些 cmdlet 的示例。

// C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0
open System.Management.Automation
open System.Management.Automation.Runspaces;

let runSpace = RunspaceFactory.CreateRunspace()
runSpace.Open()
let pipeline = runSpace.CreatePipeline()

let getProcess = new Command("Get-Process")
pipeline.Commands.Add(getProcess)

let sort = new Command("Sort-Object")
sort.Parameters.Add("Property", "VM")
pipeline.Commands.Add(sort)

// Identical to the following PowerShell command line:
// PS > Get-Process | Sort-Object -Property VM | select ProcessName

let output = pipeline.Invoke()
for psObject in output do
psObject.Properties.Item("ProcessName").Value.ToString()
|> printfn "%s"

您还可以使用 F# 构建 cmdlet 并使用 PowerShell 移动数据。查看this post在 Visual Studio F# 团队博客上。这是关于如何在 F# 中编写 Cmdlet 的一个很好的示例。您也可以embed F# into PowerShell但一般来说,制作 Cmdlet 会更好。

Cmdlet MSDN reference
Scripting with Windows PowerShell

关于.net - F# 环境集成(用于脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17111622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com