2015-03-20 2 views
1

Я пытаюсь использовать VBScript в HTML для написания текста в том, что станет скриптом powershell. Я делаю это, чтобы не статически вводить код в мой HTA местоположение этих сценариев powershell.Используйте VBScript в HTML для написания сценария PowerShell

Моя проблема становится работать вокруг Powershell-х "( и )

пример, я просто не знаю, как обернуть символы, чтобы сохранить VBS счастливым.

Dim filesys, filetxt 
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.OpenTextFile("c:\Temp\somefile.txt", ForAppending, True) 
filetxt.WriteLine ("Param([Parameter(Mandatory=$true)]") 
filetxt.WriteLine ("[string]$Str)") 
filetxt.WriteLine ("# Create the IE com object") 
filetxt.WriteLine ("$ie = new-object -comobject InternetExplorer.Application") 
filetxt.WriteLine ("#Navigate to www.") 
filetxt.WriteLine ("$ie.navigate("http://www.page.com")") 

ответ

2

Предполагая, что последняя строка ваша единственная проблема, вы можете избежать кавычки либо путем удвоения их или с помощью Chr (34), чтобы вставить их программно.

filetxt.WriteLine ("$ie.navigate(""http://www.page.com"")") 

filetxt.WriteLine ("$ie.navigate(" & Chr(34) & "http://www.page.com" & Chr(34) & ")") 
+0

Я знал, что это было просто! Закончилось использование 'filetxt.WriteLine (« $ ie.navigate («& Chr (34) &« http://www.website.com »& Chr (34) &«) »)' Но теперь я застрял пытаясь удалить созданный временный скрипт. VBS говорит мне, что Permission denied для 'filesys.DeleteFile" c: \ Temp \ somefile.txt "' – user4317867

+0

Вы попробовали необязательный аргумент силы в команде DeleteFile: 'filesys.DeleteFile" c: \ temp \ somefile.txt ", true'? Убедитесь, что вы закрываете filestream с помощью 'filetxt.Close', если вы выполняете это в том же скрипте. В противном случае это может быть проблема с разрешениями, и в этом случае вы можете попытаться повысить права доступа в VBScript, используя метод ShellExecute/runas: http://ss64.com/vb/shellexecute.html – dperish

+0

Закончен с использованием 'filedelete .DeleteFile "c: \ temp \ temp.ps1" 'который работает. Еще раз спасибо! – user4317867

Смежные вопросы