Я знаю, как сделать замену строки из внутри текстового шаблона, что-то простое, какPowershell текст/html шаблоны, которые включают в себя петли
текстовый файл
Hello ${name}
шикарно
[string] $name = "World"
$template = Get-Content 'c:\temp\docs\template.txt'
$expanded = $ExecutionContext.InvokeCommand.ExpandString($template)
$expanded
Ожидаемый результат
Hello World
Это все хорошо, но что, если мне нужно что-то более продвинутое?
текстовый файл
<div>title</div>
<ul>
$(${points} | % { $_ })
</ul>
шикарно
[string[]]$points = "First Point", "Second Point"
$template = Get-Content 'c:\temp\docs\template.txt' -force
$expanded = Invoke-Expression $template
$expanded
выход ожидается
<div>title<div>
<ul>
<li>First Point</li>
<li>Second Point</li>
</ul>
Что мне нужно сделать, чтобы CREA te шаблоны цикла внутри текстового файла?
EDIT:
здесь понятие я буду так далеко, как шаблон будет иметь дело.
<div class="container-fluid">
<div class="page-header">
<h1>${name}</h1>
<p class="lead">${synopsis}</p>
</div>
<div class="row">
<div class="col-md-12">
<h2> Syntax </h2>
</div>
<pre>
<code>${syntax}</code>
</pre>
</div>
<div class="col-md-12">
<h2> Detailed Description </h2>
<div>${description}</div>
</div>
{ifdef links}
<div class="col-md-12">
<h2> Related Commands </h2>
<div>${links}</div>
</div>
{endif links}
{ifdef parameters}
<div class="col-md-12">
<h2> Parameters </h2>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Required?</th>
<th>Pipeline Input</th>
<th>Default Value</th>
</tr>
<tr>
{foreach param in ${parameters}}
<td>$($param.Name)</td>
<td>$($param.Description)</td>
<td>$(param.Required)</td>
<td>$(param.PipelineInput)</td>
<td>$(param.DefaultValue)</td>
{endforeach}
</tr>
</table>
</div>
{endif parameters}
{ifdef notes}
<div class="col-md-12">
<h2> Notes </h2>
<div>${notes}</div>
</div>
{endif notes}
{ifdef examples}
<div class="col-md-12">
<h2> Examples </h2>
{foreach example in ${examples}}
<h3> Example </h3>
<pre>${example.code}</pre>
<div>${example.remarks}</div>
{endforeach}
</div>
</div>
Вы бы восприняли это как обман, чтобы выполнить цикл в PowerShell, а затем вставить строку, используя простую замену, как в первом примере. Поскольку это будет работать со вторым примером – Matt
Да, я рассматриваю это, и если это необходимо, но я * задница *, полагаю, что в шаблоне должен быть способ: S –
Хорошее форматирование комментариев :) – Matt