#powershell
#powershell #vbscript
Вопрос:
Существует ли программное обеспечение или инструмент, который может быстро преобразовать код VBS в код PowerShell?
Кроме того, я хочу знать, следующий With
оператор в коде VBS, как выразить в PowerShell?
With
Оператор отличный, он может сократить код, могу ли я реализовать аналогичные функции в PowerShell?
Я нашел код PowerShell очень кратким, мне очень любопытно узнать, что приведенный выше код, как использовать кратчайший код PowerShell для достижения той же функциональности.
'declare and instaciate wrdApp
Dim wrdApp: Set wrdApp = WScript.CreateObject("Word.Application")
'declare wrdDoc
Dim wrdDoc
Dim wdReplaceAll
'Open the document
Set wrdDoc = wrdApp.Documents.Open("c:test.docx")
'set the value for the replace "constant"
wdReplaceAll = 2
wrdDoc.Select
With wrdApp.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "WordToReplace"
.Replacement.Text = "ReplaceWith"
.Forward = True
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
'the Replace argument is the 11'th argument
.Execute , , , , , , , , , , wdReplaceAll
End With
'save the document and close Word
wrdDoc.SaveAs2 "c:test-ok.docx"
wrdApp.Quit
'clean up
Set wrdApp = Nothing
Set wrdDoc = Nothing
Комментарии:
1. Всегда лучше спросить себя: «Что именно я хочу сделать?», а не «Как мне преобразовать это во что-то другое?» Что именно вы хотите сделать и что вы уже пробовали? Говоря, что это выглядит как хороший ресурс для эквивалентов VB для PowerShell.
Ответ №1:
В PowerShell нет эквивалента для With
инструкции VBScript. Вместо
With wrdApp.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
...
End With
вы, вероятно, сделали бы что-то вроде этого:
$find = $wrdApp.Selection.Find
$find.ClearFormatting()
$find.Replacement.ClearFormatting()
...
или вот так:
$wrdApp.Selection.Find | ForEach-Object {
$_.ClearFormatting()
$_.Replacement.ClearFormatting()
...
}
Также, насколько мне известно, нет компилятора VBScript или VBA для PowerShell. Однако я собрал несколько заметок о том, как перевести код VBA в PowerShell.
Комментарии:
1. Как этот код использует powershell? — .Выполнить , , , , , , , , , , wdReplaceAll —