[PowerShell]template engine

今天讨论的是如何在Powershell里实现一个简单的Template Engine的功能。

假设模板文件的内容如下:template.tt

hello $name
welcome $company

模板引擎的函数定义在Invoke-Template.ps1

function Invoke-Template {
param(
[string]$Path,
[Scriptblock]$ScriptBlock
)
function Get-Template {
param($TemplateFileName)

$content = [IO.File]::ReadAllText(
(Join-Path $Path $TemplateFileName) )

$res = Invoke-Expression "@`"`r`n$content`r`n`"@"
return $res
}
& $ScriptBlock
}

调用的Powershell script是

. .\Invoke-Template.ps1
$root = $PSScriptRoot
$res = invoke-Template -Path $root -scriptblock {

 $name="andy"
 $company="hp"
 Get-Template tempalte.tt 
}


$res

输出为

posted @ 2015-08-24 15:24  卜海清  阅读(254)  评论(0编辑  收藏  举报