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, 5550 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
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 ...

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 ...

VB for Applications

Dateien aus Ordnerstruktur in Textdatei schreiben, nach Dateinamen sortieren und zusätzlich in HTML in Tabellenform ausgeben

gelöst Frage von cbliVB for Applications6 Kommentare

Hallo An Allle Ich habe ein Script (hier nochmals vielen Dank an Bastla für die Hilfe) welches Dateien mit ...

Neue Wissensbeiträge
Peripheriegeräte
Unterschrank für HP Drucker
Tipp von NixVerstehen vor 1 TagPeripheriegeräte2 Kommentare

Als kurzen Freitags-Tipp möchte ich gerne meinen neuen Drucker-Unterschrank Modell Amica KS 15423W vorstellen. Das Gerät eignet sich hervorragend ...

Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 2 TagenWindows 103 Kommentare

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 2 TagenWindows 101 Kommentar

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 4 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Heiß diskutierte Inhalte
Humor (lol)
Freitagsfrage: Was tun, wenn der Admin der DAU ist?
gelöst Frage von VoiperHumor (lol)32 Kommentare

Moin Zusammen, Eine nicht ganz ernst gemeinte Frage an die Außendienstler unter uns. Zusammenfassung: Ein Inhouse Admin ruft bei ...

LAN, WAN, Wireless
HP Probook 470 G4 - abbrechende Downloads
Frage von joern1LAN, WAN, Wireless19 Kommentare

Folgendes Problem, für einen Tipp wäre ich dankbar: Bei WLAN-Verbindung zum Internet (nicht LAN) kommt es bei etwas größeren ...

Router & Routing
Routing Problem mit Kaskade FritzBox und pfsense zugeriff nur von der firewall auf die clients und 0.0.0.0
Frage von ukl1967Router & Routing18 Kommentare

Hallo, ich habe ein an sich triviales Problem elches ich allerdings nicht gelöst bekomme. NAS 10.5.10.53 Mein Netz baut ...

Windows Server
Windows Server 2016 - Updates brauchen ewig?!
Frage von anteNopeWindows Server10 Kommentare

Hallo zusammen, was geht den mit Windows Server 2016? Ich habe hier gerade die STD Version aufs Blech installiert ...