MS DOS Backup -> Ausgabe in HTML
MS DOS Backup -> Ausgabe in HTML
Hallo,
ich möchte eine Backup-Prozedur auswerten und als HTML Code per Mail versenden.
Folgendermaßen habe ich mir das gedacht:
In der Backup Prozedur werden die Fehlercodes in eine extra Datei geschrieben. z.B.:
Sicherung auf HDD = 1
Sicherung auf Band = 0
...
Hier möchte ich ein kleines Programm schreiben, welches diesen Code auswertet udn in eine HTML Tabelle schreibt, die per Mail versendet wird.
1. Wie mache ich das am "schnellsten/besten"?
2. Wie kann ich die Festplattenbelegung via Befehl auswerten? Gibt es da ein Programm für?
Gruß
Mr.vain
ich möchte eine Backup-Prozedur auswerten und als HTML Code per Mail versenden.
Folgendermaßen habe ich mir das gedacht:
In der Backup Prozedur werden die Fehlercodes in eine extra Datei geschrieben. z.B.:
Sicherung auf HDD = 1
Sicherung auf Band = 0
...
Hier möchte ich ein kleines Programm schreiben, welches diesen Code auswertet udn in eine HTML Tabelle schreibt, die per Mail versendet wird.
1. Wie mache ich das am "schnellsten/besten"?
2. Wie kann ich die Festplattenbelegung via Befehl auswerten? Gibt es da ein Programm für?
Gruß
Mr.vain
Re: MS DOS Backup -> Ausgabe in HTML
Zu 1.)
Wenn dieses Backup-Programm von Dir ist, kannst Du HTML ja bereits
'on the fly' schreiben. Das geht mit ner normalen Stringverknüpfung.
Dann brauchst Du kein Extra-Programm, mit dem Du dann Dein Log auswertest.
Zu 2.)
http://www.purebasic.fr/german/viewtopi ... 21#p261821
Grüße ... Kiffi
denk daran, dass manche Leute (so wie ich) HTML in den Mails abgeschaltet haben.Mr.Vain hat geschrieben:ich möchte eine Backup-Prozedur auswerten und als HTML Code per Mail versenden.
Wenn dieses Backup-Programm von Dir ist, kannst Du HTML ja bereits
'on the fly' schreiben. Das geht mit ner normalen Stringverknüpfung.
Dann brauchst Du kein Extra-Programm, mit dem Du dann Dein Log auswertest.
Zu 2.)
http://www.purebasic.fr/german/viewtopi ... 21#p261821
Grüße ... Kiffi
a²+b²=mc²
Re: MS DOS Backup -> Ausgabe in HTML
Die Backup-Prozedur ist komplett in DOS (Batch) geschrieben. Wobei das ja eigentlich auch gehen müsste.Kiffi hat geschrieben:Zu 1.)denk daran, dass manche Leute (so wie ich) HTML in den Mails abgeschaltet haben.Mr.Vain hat geschrieben:ich möchte eine Backup-Prozedur auswerten und als HTML Code per Mail versenden.
z.B. so:
if %errorlevel% == 1 echo <td>Sicherung 1</td><td>erfolgreich</td> >>log.html
Re: MS DOS Backup -> Ausgabe in HTML
achso. Habe ich überlesen.Mr.Vain hat geschrieben:Die Backup-Prozedur ist komplett in DOS (Batch) geschrieben.
Wenn Du die Log mit PB extern auslesen willst, dann geht das am besten mit
ReadFile(), EOF(), Readstring() und CloseFile(). Wenn Du hierzu Hilfe benötigst,
dann bitte nochmal nachfragen.
prinzipiell ja. Wobei ich mir da nicht sicher bin, ob Du Dir damit nicht dieMr.Vain hat geschrieben:Wobei das ja eigentlich auch gehen müsste. [...]
log.html mit jedem echo überschreibst. Gibt es unter DOS sowas wie 'append'?
Grüße ... Kiffi
a²+b²=mc²
Re: MS DOS Backup -> Ausgabe in HTML
Wie kann ich denn einen String am Ende einer Datei anfügen?
Erst mit OpenFile() öffnen und dann mit WriteString() einfügen?
Wird das dann am Ende eingefügt?
2.Frage: Kann ich die API Befehle auch remote auf einem entfernten Rechner starten?- um so z.B. die Festplattenbelegung zu bekommen?
Erst mit OpenFile() öffnen und dann mit WriteString() einfügen?
Wird das dann am Ende eingefügt?
2.Frage: Kann ich die API Befehle auch remote auf einem entfernten Rechner starten?- um so z.B. die Festplattenbelegung zu bekommen?
Re: MS DOS Backup -> Ausgabe in HTML
OpenFile() -> FileSeek(Eof()) -> WriteString()Mr.Vain hat geschrieben:Wie kann ich denn einen String am Ende einer Datei anfügen?
Grüße ... Kiffi
a²+b²=mc²
Re: MS DOS Backup -> Ausgabe in HTML
Irgendie klappt das nur halb...
Wenn ich das Programm mehrfach starte, wird die log Datei immer überschrieben...
Wenn ich das Programm mehrfach starte, wird die log Datei immer überschrieben...
Code: Alles auswählen
Drive$ = ProgramParameter()
Log$ = ProgramParameter()
Procedure.d GetDiskFreeSpace(Drive$)
Protected Result.d = -1, BytesFreeToCaller.q, TotalBytes.q, TotalFreeBytes.q
If OSVersion() > #PB_OS_Windows_95
SetErrorMode_(#SEM_FAILCRITICALERRORS)
GetDiskFreeSpaceEx_(@Drive$, @BytesFreeToCaller, @TotalBytes, @TotalFreeBytes)
SetErrorMode_(0)
Result = TotalFreeBytes / 1048576 /1024
Total = TotalBytes
EndIf
ProcedureReturn Result
EndProcedure
Procedure.d GetDiskSpace(Drive$)
Protected Result.d = -1, BytesFreeToCaller.q, TotalBytes.q, TotalFreeBytes.q
If OSVersion() > #PB_OS_Windows_95
SetErrorMode_(#SEM_FAILCRITICALERRORS)
GetDiskFreeSpaceEx_(@Drive$, @BytesFreeToCaller, @TotalBytes, @TotalFreeBytes)
SetErrorMode_(0)
Result = TotalBytes / 1048576 /1024
EndIf
ProcedureReturn Result
EndProcedure
If Log$= ""
MessageRequester("Fehler","Bitte Log-Datei angeben!")
End
EndIf
If Drive$ = ""
MessageRequester("Fehler","Bitte Laufwerk angeben")
End
EndIf
FreeGB.d = 0
FreeGB = GetDiskFreeSpace(Drive$)
TotalGB.d = 0
TotalGB = GetDiskSpace(Drive$)
OpenFile(1,Log$)
FileSeek(1,Eof(1))
WriteString(1,"<html><body><center><table border=1><tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>")
WriteString(1,"<tr><td><b>"+Drive$+"</b></td><td><b>"+StrD(TotalGB, 2)+" GB</b></td><td><b>"+StrD(FreeGB, 2)+" GB</b></b></td></tr></table></body></html>")
CloseFile(1)
;MessageRequester (" OK", "Free: " + StrD(FreeGB, 2)+ " GB von "+StrD(TotalGB,2)+ " GB")
- AndyMars
- Beiträge: 141
- Registriert: 08.09.2004 11:59
- Computerausstattung: Win11 Prof 64bit, i5-13500 @ 4.8 GHz, 32GB RAM, Nvidia RTX 4070 TI
- Wohnort: Zürich, Schweiz
- Kontaktdaten:
Re: MS DOS Backup -> Ausgabe in HTML
Ich denke, du solltest WriteStringN() verwenden - sonst schreibst du immer in die gleich Zeile...Mr.Vain hat geschrieben:Irgendie klappt das nur halb...Code: Alles auswählen
... WriteString(1,"<html><body><center><table border=1><tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>") WriteString(1,"<tr><td><b>"+Drive$+"</b></td><td><b>"+StrD(TotalGB, 2)+" GB</b></td><td><b>"+StrD(FreeGB, 2)+" GB</b></b></td></tr></table></body></html>") ...
PS: Blödsinn - sry - meine Finger waren offenbar schneller wie meine Gedanken...

Zuletzt geändert von AndyMars am 11.01.2010 16:25, insgesamt 2-mal geändert.
Grüsse von AndyMars
Re: MS DOS Backup -> Ausgabe in HTML
der Knackpunkt ist, dass Du in Deinem Log mit Deinem Code oben mehrere <html><body> - Tags hast.Mr.Vain hat geschrieben:Irgendie klappt das nur halb...
[...]Code: Alles auswählen
OpenFile(1,Log$) FileSeek(1,Eof(1)) WriteString(1,"<html><body><center><table border=1><tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>") WriteString(1,"<tr><td><b>"+Drive$+"</b></td><td><b>"+StrD(TotalGB, 2)+" GB</b></td><td><b>"+StrD(FreeGB, 2)+" GB</b></b></td></tr></table></body></html>") CloseFile(1)
Das soll doch (wenn ich es recht verstanden habe) eher so aussehen:<html><body><table border=1>
<tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>
<tr><td><b>C:\</b></td><td><b>100 GB</b></td><td><b>50 GB</b></b></td></tr>
</table></body></html>
<html><body><table border=1>
<tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>
<tr><td><b>C:\</b></td><td><b>100 GB</b></td><td><b>40 GB</b></b></td></tr>
</table></body></html>
<html><body><table border=1>
<tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>
<tr><td><b>C:\</b></td><td><b>100 GB</b></td><td><b>30 GB</b></b></td></tr>
</table></body></html>
Grüße ... Kiffi<html><body><table border=1>
<tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr>
<tr><td><b>C:\</b></td><td><b>100 GB</b></td><td><b>50 GB</b></b></td></tr>
<tr><td><b>C:\</b></td><td><b>100 GB</b></td><td><b>40 GB</b></b></td></tr>
<tr><td><b>C:\</b></td><td><b>100 GB</b></td><td><b>30 GB</b></b></td></tr>
</table></body></html>
a²+b²=mc²
Re: MS DOS Backup -> Ausgabe in HTML
Kiffi hat geschrieben: der Knackpunkt ist, dass Du in Deinem Log mit Deinem Code oben mehrere <html><body> - Tags hast.
Ja, das ist schon richtig. Mir ist aber aufgefallen, dass PB beim zweiten Starten, die Ausgabe halt nicht hinzufügt.
Beim 1. Starten sieht die Log so aus:
Code: Alles auswählen
<html><body><center><table border=1><tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr><tr><td><b>C:\</b></td><td><b>74.50 GB</b></td><td><b>16.20 GB</b></b></td></tr></table></body></html>
Code: Alles auswählen
<html><body><center><table border=1><tr><td>Festplatte</td><td>Gesamtgröße</td><td>freier Speicher</td></tr><tr><td><b>C:\</b></td><td><b>74.50 GB</b></td><td><b>16.20 GB</b></b></td></tr></table></body></html>>