Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

html datei per vbs schreiben

Mitglied: 53111

53111 (Level 1)

17.09.2007, aktualisiert 18.10.2012, 5596 Aufrufe, 3 Kommentare

ich möchte per vbs eine html datei schreiben lassen? die "" und ( stören scheinbar das schreiben der datei. wie kann ich das problem lösen - wenn möglich ohne eine extra datei zu erstellen aus der ich den text importiere?


01.
HTMLdatei.Write("<html><head><title>Test</title>
02.
<script type="text/javascript">
03.
function Weiter () {
04.
  if (document.Testform.Art[0].checked == true) {
05.
    window.location.href = "frmdatei.htm";
06.
  } else if (document.Testform.Art[1].checked == true) {
07.
    window.location.href = "datei.htm";
08.
  } else {
09.
    alert("Bitte eine Auswahl treffen");
10.
  }
11.
}
12.
</script>
13.
</head><body>
14.
<form name="Testform" action="">")
Mitglied: bastla
17.09.2007 um 16:25 Uhr
Hallo saibonaut!

Versuch es mal so:
01.
HTMLdatei.Write("<html><head><title>Test</title>" & vbCrLF & _
02.
"<script type=""text/javascript"">" & vbCrLF & _
03.
"function Weiter () {" & vbCrLF & _
04.
"  if (document.Testform.Art[0].checked == true) {" & vbCrLF & _
05.
"    window.location.href = ""frmdatei.htm"";" & vbCrLF & _
06.
"  } else if (document.Testform.Art[1].checked == true) {" & vbCrLF & _
07.
"    window.location.href = ""datei.htm"";" & vbCrLF & _
08.
"  } else {" & vbCrLF & _
09.
"    alert(""Bitte eine Auswahl treffen"");" & vbCrLF & _
10.
"  }" & vbCrLF & _
11.
"}" & vbCrLF & _
12.
"</script>" & vbCrLF & _
13.
"</head><body>" & vbCrLF & _
14.
"<form name=""Testform"" action="""">")
Jede VBS-Zeile wird getrennt interpretiert, wenn sie also über mehrere Zeilen reichen soll, am Ende ein " _" anfügen.

Um in die Zieldatei eine Zeilenschaltung zu schreiben, vbCrLF verwenden.

Die einzelnen Strings können nicht über eine Zeile reichen, daher jeweils zeilenweise verknüpfen.

Jedes Anführungszeichen, das als solches geschrieben werden soll, muss verdoppelt oder durch Chr(34) ersetzt werden.

Einfacher wäre es übrigens, jede einzelne Zeile mit "HTMLdatei.WriteLine" zu schreiben.

Grüße
bastla
Bitte warten ..
Mitglied: 53111
17.09.2007 um 18:00 Uhr
ok danke. habe es jetzt so gelöst:
allerdings würde ich nun gerne aus der html datei/jscript werte an eine vbs datei zurückgeben:

LESENanfang:
01.
<html><head><title>Test</title>
02.
<script type="text/javascript">
03.
function Weiter () {
04.
  if (document.Testform.Art[0].checked == true) {
05.
    alert("0");
06.
  } else if (document.Testform.Art[1].checked == true) {
07.
    window.location.href = "datei.htm";
08.
  } else {
09.
    alert("Bitte eine Auswahl treffen");
10.
  }
11.
}
12.
</script>
13.
</head><body>
14.
<form name="Testform" action="">
LESENende:
01.
<br><input type="button" value="Starten" onclick="Weiter()">
02.
</form>
03.
</body></html>

01.
DIM fsoSCHREIBEN        'FSO zum Speichern der HTML Datei
02.
DIM fsoLESENanfang     'LESEN der aus txt'
03.
DIM fsoLESENmitte
04.
DIM fspLESENende
05.
DIM objOrdner    ' Variable für den Ordner, in dem die Unterordner entstehen
06.
DIM objUnterordner ' Variable für die Unterordner
07.
DIM Ordner     ' Variabel für den Ordner, in dem die Unterordner entstehen
08.
DIM ordnerarray
09.
DIM HTMLdatei
10.
 
11.
DIM LESENanfangTXT  'Textstreams aus TXT Dateien'
12.
DIM LESENmitteTXT 
13.
DIM LESENendeTXT
14.
 
15.
DIM inhaltLESENanfang                  'Inhalt der TXT Dateien '
16.
DIM inhaltLESENmitte 
17.
DIM inhaltLESENende 
18.
 
19.
DIM HTMLtext 'wird momentan nicht benötigt'
20.
Const ForWriting = 2
21.
Const fsForReading = 1
22.
 
23.
 
24.
Set fsoSCHREIBEN = CreateObject("Scripting.FileSystemObject")
25.
set HTMLdatei = fsoSCHREIBEN.OpenTextFile("C:\Test.html", ForWriting, true)
26.
 
27.
 
28.
Set fsoLESENanfang  = CreateObject("Scripting.FileSystemObject")
29.
set LESENanfangTXT = fsoLESENanfang.OpenTextFile("C:\LESENanfang.txt", fsForReading)
30.
inhaltLESENanfang = LESENanfangTXT.ReadAll
31.
 
32.
'Set fsoLESENmitte = CreateObject("Scripting.FileSystemObject")
33.
'set LESENmitteTXT = fsoLESENmitte.OpenTextFile("C:\LESENmitte.txt", fsForReading)
34.
'inhaltLESENmitte = LESENmitteTXT.ReadAll
35.
 
36.
Set fspLESENende = CreateObject("Scripting.FileSystemObject")
37.
set LESENendeTXT = fspLESENende.OpenTextFile("C:\LESENende.txt", fsForReading)
38.
inhaltLESENende = LESENendeTXT.ReadAll
39.
 
40.
 
41.
'Anfang der HTML Datei schreiben'
42.
HTMLdatei.Write(inhaltLESENanfang)
43.
 
44.
 
45.
x = 0
46.
Ordner = "C:\"
47.
Set FSO = CreateObject("Scripting.FileSystemObject")
48.
Set objOrdner = FSO.GetFolder(Ordner)
49.
Temp = ""
50.
For Each objUnterordner in objOrdner.SubFolders
51.
	Temp = Temp & ":" & objUnterordner.Name
52.
Next
53.
ordnerarray = Split(Mid(Temp, 2), ":")
54.
       
55.
 
56.
    
57.
    For h = 0 to UBound(ordnerarray)-1
58.
    HTMLdatei.Write("<input type=""checkbox"" name=""Art"" value=""" & ordnerarray(h)& """>" & ordnerarray(h) & "<br/>")
59.
 
60.
 
61.
    Next 
62.
    HTMLdatei.Write(inhaltLESENende)   
63.
 
64.
HTMLdatei.Close

und nun soll je nach angeklickter checkbox der entsprechende wert aus "value" hier anstelle der InputBox in "OrdnerUndNutzer" eingefügt und ausgeführt werden.

vbs:



01.
 
02.
OrdnerUndNutzer = InputBox("Welche Datei wollen Sie bearbeiten?",,"Ordnername")
03.
zielfile = "H:\" & OrdnerUndNutzer
04.
 
05.
' Zugriff auf WMI
06.
Set wmi = GetObject("winmgmts:")
07.
' "Jeder" soll die Datei nur lesen dürfen, das Löschen wird explizit verboten
08.
' "Administrator" soll alle Rechte erhalten
09.
 
10.
 Set ACE1 = CreateACE(wmi, 2032127, 0, SetTrustee(wmi, "Administratoren"))
11.
              Set ACE2 = CreateACE(wmi, 2032127, 0, SetTrustee(wmi, "OrdnerUndNutzer" ))             
12.
              
13.
              newdacl = Array(ACE1, ACE2)
14.
 
15.
 
16.
 
17.
' die Datei, die diese Rechte erhalten soll, wird angesprochen
18.
Set fileinstance = GetFile(wmi,zielfile)
19.
 
20.
' der alte Security Descriptor wird geöffnet
21.
retval = fileinstance.getsecuritydescriptor(sec)
22.
 
23.
' die neue DACL ersetzt die alte DACL
24.
sec.Properties_.Item("dacl") = newdacl
25.
 
26.
' der geänderte Security Descriptor wird in die Datei zurückgeschrieben
27.
retval = fileinstance.setsecuritydescriptor(sec)
28.
 
29.
' erledigt
30.
If retval = 0 Then
31.
MsgBox "Neue Zugriffsrechte eingetragen"
32.
Else
33.
MsgBox "Konnte Zugriffsrechte nicht speichern." & vbCrLf _
34.
& "Möglicherweise fehlen Ihnen die Berechtigungen, oder die Datei existiert nicht."
35.
End If
36.
 
37.
Function GetFile(wmi, filename)
38.
' öffnet eine Datei
39.
Set GetFile = wmi.Get("Win32_LogicalFileSecuritySetting='" & filename & "'")
40.
End Function
41.
 
42.
Function CreateACE(wmi, AccessMask, AceType, objTrustee)
43.
' legt einen ACE an
44.
Set objAce = wmi.Get("Win32_Ace").SpawnInstance_
45.
objAce.Properties_.Item("AccessMask") = AccessMask
46.
objAce.Properties_.Item("AceFlags") = 3
47.
objAce.Properties_.Item("AceType") = AceType
48.
objAce.Properties_.Item("Trustee") = objTrustee
49.
Set CreateACE = objAce
50.
End Function
51.
 
52.
Function SetTrustee(wmi, account)
53.
If Left(account,2) = "\\" Then
54.
konto = Mid(account, 3)
55.
Else
56.
konto = account
57.
End If
58.
infos = Split(konto, "\")
59.
If UBound(infos) = 0 Then
60.
'SYS: Windows Script Host Runtime Library
61.
Set wshnet = CreateObject("WScript.Network")
62.
UserName = infos(0)
63.
ComputerName = wshnet.ComputerName
64.
Else
65.
UserName = infos(1)
66.
ComputerName = infos(0)
67.
End If
68.
 
69.
' legt ein Win32_Trustee-Objekt an
70.
Set objTrustee = wmi.Get("Win32_Trustee").SpawnInstance_
71.
objTrustee.Domain = ComputerName
72.
objTrustee.Name = UserName
73.
 
74.
objTrustee.Properties_.Item("SID") = GetBinarySID(ComputerName, UserName)
75.
Set SetTrustee = objTrustee
76.
End Function
77.
 
78.
Function GetBinarySID(ComputerName, UserName)
79.
' ** ermittelt binäre SID eines Benutzerkontos
80.
On Error Resume Next
81.
Set wmi = GetObject("winmgmts:\\" & ComputerName)
82.
If Err.number<>0 Then
83.
MsgBox "Konnte \\" & ComputerName & " nicht erreichen!"
84.
WScript.Quit
85.
End If
86.
On Error Goto 0
87.
 
88.
wql = "select * from win32_account where name='" & UserName & "'"
89.
Set result = wmi.ExecQuery(wql)
90.
counter = 0
91.
For each entry in result
92.
counter = counter + 1
93.
sid = entry.SID
94.
Next
95.
If counter = 0 Then
96.
MsgBox "Konnte \\" & ComputerName & "\" & UserName & " nicht erreichen!"
97.
WScript.Quit
98.
ElseIf counter>1 Then
99.
MsgBox "Zweideutiger Kontoname."
100.
WScript.Quit
101.
End If
102.
 
103.
Set obj = wmi.Get("Win32_SID.SID=""" & sid & """")
104.
GetBinarySID = obj.Properties_.Item("BinaryRepresentation").Value
105.
End Function
Bitte warten ..
Mitglied: bastla
17.09.2007, aktualisiert 18.10.2012
Hallo saibonaut!

Frage zwischendurch: Wenn es anscheinend nur darum geht, eine Datei / einen Ordner auszuwählen, warum dann nicht einfach per Standard-Dialog (siehe zB https://www.administrator.de/forum/vbs-ordnerauswahl-und-dateiauswahl-mi ... bzw den dort verlinkten Beitrag)?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS Datei Auswahl Dialog
gelöst Frage von 133202VB for Applications5 Kommentare

Hallo Ihr, im Thread: konnte ich schon finden, was ich gesucht habe: Jetzt möchte ich allerdings, dass am Anfang ...

VB for Applications
VBS für Timestamp-Datei
gelöst Frage von PascalSchVB for Applications3 Kommentare

Hallo Zusammen, Bin ziemlich neu in der Welt des VBS und habe eine Frage hierzu, die ihr mir hoffentlich ...

Entwicklung

HTML Link aufrufen per Batch?VBS?JAVA?Python?

gelöst Frage von fuguEntwicklung4 Kommentare

Hey ho Coder-Gemeinde! Zugrunde liegt eine Software, mit der ich regelbasiert irgendetwas ausführen kann - eine DOS Batch, oder ...

Outlook & Mail

Signatur im HTML Format zu VBS Scribt hinzufügen

Frage von GalipoliOutlook & Mail2 Kommentare

Hallo zusammen, ich habe ein VBS Script das unsere bisherige Signatur an die Mitarbeiter verteilt hat. Nun wurde ein ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 6 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 6 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore29 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server21 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Linux
Info Monitor für eine Schule
gelöst Frage von CAT404Linux13 Kommentare

Moin, ich möchte einen Infomonitor betreiben; derzeit läuft da ein Windows 10 Rechner bei dem Firefox beim Start in ...