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

Frage Entwicklung VB for Applications

html datei per vbs schreiben

Mitglied: 53111

53111 (Level 1)

17.09.2007, aktualisiert 18.10.2012, 5493 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 http://www.administrator.de/forum/vbs-ordnerauswahl-und-dateiauswahl-mi ... bzw den dort verlinkten Beitrag)?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateinamen mit vbs auslesen und in eine TXT Datei schreiben
gelöst Frage von KeiosIDBatch & Shell5 Kommentare

Hallo, ich hoffe mal, das ist das richtige Unterforum. Nach diversen suchen und Hilfe aus einem Windows Scripting Buch ...

JavaScript
String mit Umlauten in HTML-Textbox schreiben
Frage von mabue88JavaScript2 Kommentare

Hallo, ich weiss, dass das Thema eigentlich ausreichend im Netz behandelt wird. Aber ich bekomme es einfach nicht hin ...

VB for Applications
VBS .txt Inhalt vor schreiben löschen
Frage von deathhollyVB for Applications8 Kommentare

Hallo, ich habe folgendes Script. Es funktioniert auch, nur das wenn ich es im Overwrite Modus öffne, schreibt es ...

Batch & Shell
Teilstring nach Splitten in Variablen schreiben vbs
gelöst Frage von goodbytesBatch & Shell2 Kommentare

Hallo, das Aufsplitten des Strings mittels Regular Expressions funktioniert bereits hiermit: Danach habe ich Vieles hin und her probiert ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 23 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit27 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

SAN, NAS, DAS
Hilfe beim Einrichten eines Storages (SAN)
gelöst Frage von Vader666SAN, NAS, DAS15 Kommentare

Hallo Admins! Ich bin in einer kleineren Firma und hatte bisher mit dem Thema SAN nur in meiner Ausbildung ...

Monitoring
VPN Performance Zyxel-Fritte
gelöst Frage von HenereMonitoring13 Kommentare

Servus, nachdem ihr mir ja schon so gut helfen konntet, was das VPN zwischen Zyxel USG60W und Fritte 7490 ...