PowerShell 3 では、文字列に対して正規表現置換を実行しています。'$1' 位置パラメータを変数として関数に渡したいと考えています (script.ps1 の最後の行を参照)。
私のコード
testFile.html
<%%head.html%%>
<body></body></html>
head.html
<!DOCTYPE html>
<html><head><title></title></head>
スクリプト.ps1
$r = [regex]"<\%\%([\w.-_]+)\%\%>" # matches my markup e.g. <%%head.html%%>
$fileContent = Get-Content "testFile.html" | Out-String # test file in which the markup should be replaced
function incl ($fileName) {
Get-Content $fileName | Out-String
}
$r.Replace($fileContent, (incl '$1'));
問題は script.ps1 の最後の行にあります。これは、Get-Content が $fileName から正しい値を取得できるように関数呼び出しを解決する方法が見つからなかったことです。エラーメッセージから「$1」の読み取りと見なされます。
Get-Content : Cannot find path 'C:\path\to\my\dir\$1' because it does not exist.
「C:\path\to\my\dir\head.html」が欲しい
基本的に、このスクリプトで達成したいことは、<%% %%> マークで指定した場所にある他の静的 HTML ページを自分のページにマージすることです。
何か案は?ありがとうございました。