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, 5560 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
Windows Netzwerk

CGM Praxisarchiv funktioniert auf Clients nach Update auf 4.14 nicht mehr

Tipp von MOS6581 vor 9 StundenWindows Netzwerk

Moin, ein Kunde setzt das CGM-Praxisarchiv ein. Mehrplatzinstallation mit SQL-Server. Nachdem letzte Woche auf die 4.14 aktualisiert wurde, funktionierte ...

Windows 10

Win 10 - Storage Sense - neues herstellerseitiges Cleaning-Tool statt cleanmgr

Tipp von mathu vor 16 StundenWindows 101 Kommentar

Vermutlich ab dem Oktoberrelease wird eine neue Speicherbereinigungssuftware ausgeliefert von Microsoft. Cleanmgr.exe soll angeblich aber noch weiter parallel verfügbar ...

E-Mail
Neueste Masche der Bad Guys: Offene Erpressung
Information von the-buccaneer vor 1 TagE-Mail15 Kommentare

"Warum den komplizierten Weg über einen Kryptotrojaner nehmen, wenn man die Leute auch direkt erpressen kann?" haben sich wohl ...

Viren und Trojaner
Neues ct-desinfect 2018 erschienen
Information von Lochkartenstanzer vor 1 TagViren und Trojaner1 Kommentar

Moin, heise hat eine neues Sonderheft Desinfect veröffentlicht (9,90€/12,90€) . Falls jemand öfter mal Kisten "säubern" muß ist das ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Kombiniere mehrere 4G Router zu einem Netzwerk - Anwendung kleine LAN (10-20 Leute)
Frage von HulkTheHeroLAN, WAN, Wireless22 Kommentare

Guten Mittag liebes Administrator - Fourm, ich hoffe ich habe das richtige Thema ausgewählt - ansonsten bitte gerne verschieben ...

Firewall
Blocken illegaler Film-Streams
gelöst Frage von CoreknabeFirewall20 Kommentare

Moin Wissende, unsere kleine Hochschule möchte gern das illegale Streaming von Kinofilmen und Serien unterbinden. Wir sperren bisher alle ...

Windows Server
2012 R2 Server Keine Anmeldung möglich Meldung: Laut den Sicherheitsrichtlinien auf diesem PC sollen informationen zur letzten interaktiven Anmeldung angezeigt werden
Frage von Speedy18A4Windows Server19 Kommentare

Hallo, ich habe vor einigen Wochen einen zweiten Domain Controller zu meiner Domain hinzugefügt. Funktionierte alles wunderbar. Auch die ...

iOS
Virus auf iphone
Frage von jensgebkeniOS17 Kommentare

hallo gemeinschaft, habe einen virus auf meinem iphone es kommen zwei meldungsfenster 1. online-2018-software-free.win 2. wpform.com - please click ...