我一直在使用powershell脚本来自动执行生产服务器上的某些任务.但是,当我尝试对异步和并行处理等做一些事情时,它达到了它的限制.
F#脚本是否适合替换PowerShell脚本?(猜测在访问文件系统和其他操作系统对象时会更麻烦,这在Powershell中非常容易).服务器没有安装visual studio.是否可以将fsi.exe复制到服务器以运行fsx文件?
一个用例,
每个步骤需要一段时间,所以我想做类似下面的事情,这在PowerShell中很难做到
//Limit download 3 files at the same time maximum.
async {
let! zip = GetFromFTP ...
let! file = Unzip zip
do! ... //Run exe to parse file
}
Run Code Online (Sandbox Code Playgroud)
F#脚本不是完全替换PowerShell的好选择 - 正如你所提到的,F#是一种低级语言,因此你需要编写更多的代码来完成基本的系统自动化工作.F#也没有与其他Windows服务器技术很好地集成,因此这将是另一场艰苦的战斗.如果你真的想要走那条路,你应该在你的服务器上安装F#3.1.2软件包,它将部署FSharp.Core运行时和fsc/fsi.
由于powershell和F#都基于.NET,另一种选择是在F#中将更多算法,计算密集型代码编写为DLL,然后将其加载到PowerShell中.您甚至可以直接在F#中编写Powershell cmdlet.我过去成功地使用过这种方法.
如果您的特定问题与代码的并行/异步执行有关,那么PowerShell 后台作业可能是相关的.
编辑:关于powershell/F#互操作性的主题,Powershell类型提供程序也可能值得研究.
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |