我想使用PowerShell與使用一些angularhs變種如$範圍,$窗口,$ SCE
一種解決方案是逃避所有$ OCCURENCES僅用於某些變量而不是PowerShell的變量解決這裏給出 HTML內容Powershell cannot expand this javascript content
另一種解決方案是在Powershell中自定義$ string插值符號:是否有可能?我搜索,但似乎無法找到它。
我想使用PowerShell與使用一些angularhs變種如$範圍,$窗口,$ SCE
一種解決方案是逃避所有$ OCCURENCES僅用於某些變量而不是PowerShell的變量解決這裏給出 HTML內容Powershell cannot expand this javascript content
另一種解決方案是在Powershell中自定義$ string插值符號:是否有可能?我搜索,但似乎無法找到它。
使用不同的符號PowerShell的變量,例如環繞與%
:
<script type="text/javascript">
%var1%
$jsvar
$('.mylink').click(function(event) {
var hash = $(this).attr("href");
});
%var2%
</script>
所以它會很容易逃避所有JavaScript的$
然後轉換%
到PowerShell的$
:
$ExecutionContext.InvokeCommand.ExpandString((
$text -replace '\$', '`$' -replace '%(\w+)%', '$$$1'))
當我嘗試使用app.controller('Ctrl',函數($ scope,$ window,$ sce){}時,我得到一個空的輸出文件? – user310291
$ template = get-content -raw -Encoding utf8 test.html $ Template = $ Template | ForEach-Object {ExecuteContext.InvokeCommand.ExpandString(($ text -replace'\ $','''-replace'%(\ w +)%','$$$ 1') ) } } $ Template | Out-File out.html -Encoding UTF8 – user310291
由於您沒有使用'foreach'中的實際文件內容:''_'替換'$ text' – wOxxOm
另一種解決方案是定製$串插符號在PowerShell中
我不知道那是可能的,但你可能不需要反正走這條路。
不知道這是否對您來說是可行的解決方案,但您可以做的一個選擇是允許PowerShell擴展它找到的所有字符串。然而,在這之前你會做的是事先在變量名稱本身的文本中放置一些變量。
$inputString = @'
There is some $data here.
It looks like we are getting $real $crazy.
Look at the colour $colour to see what is going on.
'@
這裏的字符串有4個潛在變量。它是單引號的,所以沒有擴展發生。我們創建了一個我們不想擴展的「變量」集合。以及我們想要擴展的一個變量。我選擇來取代$colour
$skip = "data","real","crazy"
$colour = "Green"
然後我們在$skip
爲每一個字符串變量,其中的數據是變量名本身帶有一個美元符號。
$skip | ForEach-Object{New-Variable -Name $_ -Value "`$$_"}
所以,現在當我們做變量代換所有變量都受到影響,但我們控制,不應該有自己的價值觀改變了的人的結果。
$ExecutionContext.InvokeCommand.ExpandString($inputString)
There is some $data here.
It looks like we are getting $real $crazy.
Look at the colour Green to see what is going on.
因此,所有的字符串進行擴張,但我們放在了數據,真實和瘋狂相同的文字和$colour
被允許更改。我看了一下你的另一個問題,這對超出已經告訴你的答案的子表達式並沒有什麼幫助。
請注意,如果您不控制或信任所插入的數據和源字符串本身,則$ExecutionContext.InvokeCommand.ExpandString
可能很危險。那裏存在潛在的惡意行爲。
似乎是一個很好的解決方案,我選擇了第一個,因爲它是更快的實施,但將在 – user310291
後嘗試你的礦是基於_this_問題的答案。它並不真正適用於你真正要問的是什麼是關於另一個問題的內容。如果包含這些,我不會用這種方式回答。我希望這對其他人有用,這就是爲什麼我保留在這裏。 – Matt
所以你有一個字符串,你希望它擴展一些變量,但不是其他的。 – Matt
@Matt是的,就是這樣 – user310291
你打算如何擴展變量? – Matt