kleine batch datei unter win xp
Geizhals » Forum » Programmierung » kleine batch datei unter win xp (20 Beiträge, 374 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
...
Re(3): kleine batch datei unter win xp
25.05.2005, 21:08:19
Okay, ich versuchs ein bisschen detaillierter.

Vb-Skripts sind genauso wie die altbekannten Batch-Dateien (also Dateien mit ".BAT" als Endung) ganz gewöhnliche Text-Dateien. Man kann sie mit jedem gewöhnlichen Texteditor erstellen (z.B. "Notepad" bzw. "Notizblock" aus dem Windows-Zubehör) und es muss für die Lauffähigkeit dieser Skripts auf den Geräten in der Regel auch nichts zusätzliches installiert werden. VB-Skripts haben gewöhnlich die Endung ".VBS".

D.h. Du kannst z.B. auf dem Desktop eine Datei erstellen (rechte Maustaste auf den Desktop -> Neu -> Textdokument. Dem Dokument gibst Du dann z.B. den Namen "Sicherung.VBS" (das Symbol für die Datei wird dann zu einer hellblauen Papierrolle).

Nun musst Du diesem Dokument nur noch den richtigen Programmcode einpflanzen. Dazu klickst Du das Symbol von Sicherung.VBS mit der rechten Maustaste an und gehts auf "Edit" oder "Bearbeiten". In dieses noch leere Textfenster kopierst Du den fett geschrieben Text aus meinem vorigen Posting. Theoretisch könntest Du nun die Datei speichern und es wäre alles erledigt. Immer wenn Du in Zukunft das Skript aufrufst (doppelklickst) sollte es annähernd das tun, was Du Dir gewünscht hast bzw. mit Deinen Postings ausgedrückt hast bzw. das was was ich daraus herausgelesen habe.

Was meine ich mit theoretisch?

Da ich nicht genau wissen kann, wo Deine drei Ordner wirklich physikalisch liegen (C-Laufwerk, D-Laufwerk, irgendein Netzwerlaufwerk, ...) habe ich in dem Skript Beispielpfade verwendet. Diese musst Du bei Bedarf natürlich auf Deine konkrete Situation abändern. z.B.
Ordner1 = "H:\SicherungArchiv\"
Ordner2 = "C:\Vorlage\"
Ordner3 = "D:\Meine Daten\Aktuell\"
Achtung: Nicht auf den abschliessenen umgedrehten Schrägstrich vergessen!

Weiters ist zu beachten, dass ich in dem Skript davon ausgehe, dass in den Ordnern 2 und 3 nur die relevanten sicherungswürdigen Dateien (für Dein Beispiel also die Dateien x und y) liegen sollten. D.h. alle Dateien die in diesen Ordnern liegen werden auch entsprechend verschoben und kopiert. Vorteil: Du kannst in Zukunft problemlos zusätzliche Dateien in Deine "Excel-System-Landschaft" aufnehmen ohne das Skript dafür ändern zu müssen.

Kleiner Tip noch:
Die Zeile mit dem Printout löst ja den Druck aus. Wenn Dir das während der Testphase (bis alles richtig läuft) auf den Nerv geht, dann kannst Du sie durch Voranstellen eines einfachen Hochkommas (das Zeichen über der Raute #) wirkunslos machen (auskommentieren, ähnlich dem "REM" in Batch-Dateien).
'objXl.Workbooks.Open(Ordner1 & NewFileName).Sheets(1).Printout

Möge die Übung gelingen.  


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
.....
Re(5): kleine batch datei unter win xp
27.05.2005, 00:03:07
Na fein, das ist doch schon was.

Zum Druckproblem:
Ich glaube, dass es auf dem anderen Rechner mit angeschlossenem und angeschaltenem Drucker eigentlich funktionieren müsste. Falls es doch nicht funktioniert, dann füge einfach einmal eine Zeile "objXl.Visible = True" (ohne Anführungszeichen) nach der Zeile "Set objXl = CreateObject("Excel.Application")" ein. Da Excel dann nicht mehr versteckt arbeitet, sollten auch etwaige Fehlermeldungen besser sichtbar sein.
Auf dem Laptop der Freundin dürfte der Druckbefehl zwar abgesendet worden sein, mangels angeschlossenem Drucker aber in der Druckerwarteschlange verendet sein (eventuell bei Gelegenheit einmal kontrollieren und den etwaig vorhandenen Druckjob einfach löschen). Vielleicht gabs aber auch eine Fehlermeldung, die bedingt durch den "Excel-Unsichtbar-Modus" unterdrückt wurde. Ist aber eigentlich nicht weiter schlimm.

Zum Thema "Erklärungsseiten":
Ich verwende zum Nachschlagen am liebsten:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/scriptinga.asp
Eventuell sind folgende auch ganz hilfreich:
http://www.arstechnica.de/computer/vbs/einfuehrung.html
http://www.html-world.de/program/vbs_1.php#wiesetzeichvbsein
Für alles was mit den Excel-Innereien zu tun hat (z.B. der PrintOut-Befehl) benutze ich den "Object Browser" (in Excel Über Menü Extras -> Makro -> Visual Basic Editor und dann "F2" drücken. Hier kann man wochenlang das sehr mächtige Excel-Objektmodell erforschen und sich die Hilfetexte für die Befehle anzeigen lassen.

Zum Thema "Andere Dateien":
Dazu ist eine kleine Anpassung notwendig (siehe untenstehender Code). Mit diesem Skript sollte das funktionieren. Weiters ist es nun zumindest theoretisch egal, wenn Du in den Ordnern 1 und 3 z.B. noch ein paar Urlaubsfotos herumstehen hast, die mit der Sicherung eigentlich gar nichts zu tun haben. Relevant sind nur noch die Namen der Dateien, die im Ordner 2 stehen (egal welchen Dateityp sie haben). Genau diese Dateien werden verschoben und kopiert.
Gedruckt werden allerdings nur Excel-Dateien bzw. in der neuen Version auch Word-Dateien (solltest Du mit Word nichts am Hut haben, dann lösch einfach die 3 Zeilen in denen "objWord" vorkommt).

-----

Set Fso = CreateObject("Scripting.FileSystemObject")
Set objExcel = CreateObject("Excel.Application")
Set objWord = CreateObject("Word.Application")

Ordner1 = "C:\Archiv\"
Ordner2 = "C:\Vorlage\"
Ordner3 = "C:\Aktuell\"

For Each Fi In Fso.GetFolder(Ordner2).Files
    FileExt = Fso.GetExtensionName(Fi.Name)
    ArchivFileName = Fso.GetBaseName(Fi.Name) & "(" & Replace(Now,":","") & ")." & FileExt
    Fso.MoveFile Ordner3 & Fi.Name, Ordner1 & ArchivFileName
    Fso.CopyFile Ordner2 & Fi.Name, Ordner3 & Fi.Name
    Select Case UCase(FileExt)
       Case "XLS": objExcel.Workbooks.Open(Ordner1 & ArchivFileName).Sheets(1).Printout
       Case "DOC": objWord.Documents.Open(Ordner1 & ArchivFileName).Printout
    End Select
Next
objExcel.Quit
objWord.Quit

-----

Viel Erfolg!


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung