Die WSH - Skripte • Sammlung
zum Download auf der DownLoad-Seite.
Die Skripte fortlaufend
alle.html. Siehe auch im
Portable Script Center v3.0
bei
TechNet.MS,
die
The TechNet Script Center Gallery!
und hier die
HTA-Beispiele
bzw. die
WMI-Seite.)
Neu in der Version v11.4 vom 30.04.2011:
QuellCode>
emailsenden_cmd.vbs
ermöglicht aus Batch-Programmen (CMD oder BAT) heraus eine Email zu versenden.
Dazu muss für die CMD das VBS erreichbar sein. Als Parameter wird nur der Mitteilungstext 'erfasst'.
Die Email-Adressen und der SMTP-Server sind im VBS fest eingetragen (HardCoded).
Das Skript verwendet die Prozedur aus
QuellCode>
emailsenden.vbs
Sub EmailSenden( SMTPServer, EmailVon, EmailAn,
AnmName, AnmPassw, Betreff, Text, Anhang )
ermöglicht das Versenden Emails aus einem Skript heraus.
Bisher ist diese Prozedur immer an dem Fehlen des Parameters
'smtpauthenticate' gescheitert. Um eine Anmeldung am
SMTP-Server durchzuführen reichen NICHT die beiden
Parameter 'sendusername' und 'sendpassword', sondern
es muss noch der dritte Parameter 'smtpauthenticate'
mit gesetzt werden, um das Verwenden der anderen
beiden Parametern auszulösen.
QuellCode>
kontext-besitzerwerden.vbs
Im Kontext-Menü des Windows-Explorers wird ein Eintrag 'Besitz übernehmen'
hinzugefügt . . wer nicht genaustens weiß, was das beduetet, sollte das Skript nicht
verwenden - es kann das Betriebssystem unbrauchbar machen!
QuellCode>
netzpfadermitteln.vbs
Enthält zwei Prozeduren:
Function NetzPfadVonLwErmitteln( Lw )
erwartet einen Laufwerksbuchstaben als Parameter und wird in kontext-pfadinzwischenablage.vbs verwendet
Function NetzPfadErmitteln( Datei )
erwartet einen Laufwerksbuchstaben oder einen Pfad zu einer Datei oder einem Verzeichnis als Parameter.
Mit C: als Parameter erhält man \\[PCName]\c$.
QuellCode>
wmi-x64.vbs
Function ist64bit( PC )
ermittelt, ob das Betriebssystem x64 (64-Bit) oder x86 (32-Bit) ist.
Aktualisiert (weniger Fehler) aus Version v10.8 vom 31.08.2010:
QuellCode>
WIM-BuR.hta
ermöglicht eine Datensicherung bzw. Datenrücksicherung in/aus WIM-Dateien mit dem
Microsoft-Tool ImageX.exe (und sollte auf jeder
WinVista- und Win7-InstallationCD vorhanden sein).
Seit Windows Vista stellt ImageX.exe für die
Betriebssysteminstallation Dateien aus einem WIM bereit
(Windows Imaging File Format; auf der Installations-DVD).
Es ist Bestandteil des WAIK, für jeden Anwender verfügbar und gilt als
zuverlässig, um Daten in WIMs zu speichern.
Nähere Informationen über ImageX.exe, WIM-Dateien und WAIK sind in
WIM-BuR.hta
hinterlegt und sollen hier nicht wiederholt werden.
Das HTA kann sich selbst als Standard-Anwendung für WIM-Dateien eintragen
und benötigt zwingend ImageX.exe und fragt ggf. nach dem Ort, wo sich diese Datei befindet.
Für meine Skriptentwicklung und für Arbeiten an
dieseyer.de
verwende ich verschiedene Unterverzeichnisse
in c:\dieseyer.de\. Dieses Verzeichnis synchronisiere ich
auf drei Computern. Mit
WIM-BuR.hta
habe ich einen geplanten Task eingerichtet, der zu
jeder vollen Stunde eine Komplett-Datensicherung
in ein und das selbe WIM durchführt - 83 Sicherungen
von jedesmal ca. 30MB ergeben statt 2,46 GB
ein knapp 40 MB großes WIM:
WIM-Inhalt.
Und der größte Vorteil: Jede Sicherung kann ich als
Komplett-Backup zum Wiederherstellen verwenden!
Das Hta lässt sich auch in BartPE / WinPE verwenden,
wenn die Hta-Unterstützung gegeben ist.
Neu: Eine neue Version.
QuellCode>
wim-inhalt.vbs
zeigt den Inhalt von WIM-Dateien an, die mit ImageX.exe erstellt wurden.
Das VBS kann sich selbst als Standard-Anwendung für WIM-Dateien eintragen
und benötigt zwingend ImageX.exe und fragt ggf. nach dem Ort, wo sich diese Datei befindet.
ImageX.exe ist Bestandteil des WAIK (vergl. WIM-BuR).
Seit längerem (min. 1 Monat) unveränderte Dateien:
(alphabetisch geordnet)
QuellCode>
00-anfang.vbs
Das 'Grundgerüst' für ein neues Skript - das wichtigstes ist schon drin.
QuellCode>
00-anfang-trc32.vbs
die LOG-Datei ist für trace32.exe
(vergl. trace32.exe)
optimiert - das wichtigstes ist schon drin.
QuellCode>
00-anfang-alle10s-trc32.vbs
QuellCode>
100Prozent.vbs
verursacht 100% CPU-Auslastung bis in dem Verzeichnis, in dem
sich das Skript befindet, eine "ende.txt" erstellt wurde.
dse-statistic.html
QuellCode>
1und1_htmlstatistic_nach_html.vbs
Ist der Provider der eigenen Site 1&1, befindet sich im
Verzeichnis ftp://[site]/logs/traffic.html
die Zugriffs-Statistik der letzten 12 Monate -
je Monat eine [Monat].html.
Sind diese Dateien über mehrere Jahre in einem Verzeichnis
nach dem Muster "[Jahr]-[Monat].html" gespeichert, erstellt
1und1_htmlstatistic_nach_html.vbs
eine Kurzübersicht als HTML-Datei - vergl.
dieseyer.de/dse-statistic.html
QuellCode>
2-5mal-input.vbs
zerlegt / extrahiert aus der Eingabe in eine InputBox mehrere Eingaben.
QuellCode>
2-5mal-input-ds.vbs
eine andere Variante (von mir) . . . oder als HTA:
QuellCode>
input.hta
erfasst mehrere Eingabe in einem Formular - von der
. . . mehr • HTA-Seite.
QuellCode>
7s-aufeingabewarten.vbs
zeigt eine Varainate, wie bei fehlender Benutzereingabe
nach einer festgelegten Zeit das Skript sich selbst beendet.
QuellCode>
AcronisAlteTibEntfernen.vbs
Im Skript ist eine Datei anzugebeben, die nicht gelöscht wird - aber
ALLE
Dateien in dem selben Verzeichnis mit der selben
Dateinamenerweiterung (Extension), die ein bestimmtes Alter haben,
werden beim Skriptaufruf gelöscht.
QuellCode>
adminstart.vbs
zum 'Skripte und Programme unter anderem Benutzer starten zu können
(by EagleSoft Ltd. / Roland Weisskopf).
adminstart.vbs /UPC01\administrator /PPwdGeheim! /Stemp-hilfe.vbs
startet 'temp-hilfe.vbs' mit dem User 'PC01\administrator' (also der User 'administrator'
des lokalen Accounts auf 'PC01' bei Workgroup-PCs oder der User 'administrator'
des AD-Accounts der Domäne 'PC01') und dem Passwort 'PwdGeheim!'
QuellCode>
wmi-aktive-vbs.vbs
Function AnzahlLaufendeVBS( VBScripts )
prüft, wie oft ein VBS mit einem bestimmten Namen
unter "wscript.exe" oder "cscript.exe" gerade läuft.
QuellCode>
wmi-laufendevbs.vbs
Function LaufendeSkripte( PC )
prüft, welche Skripte durch "wscript.exe" oder "cscript.exe" gerade laufen und
Function SkriptBeenden( PC, Progr )
beendet ein Skript von den ermittelten.
QuellCode>
aktuelledmtfdatetime.vbs
Function AktuelleDMTFDateTime()
wandelt die aktuelle Zeit in das DMTF-DateTime-Zeitformat
(mit Zeitverschiebung; Sommerzeit; DST).
wschmelz-beispiele.exe
von W. Schmelz
(entpackt sich in einen Ordner)
und enthält eine Sammlung von Beispielskripten - also
eine 'Konkurrenz' zu meiner Site . . .
Infos>
allesschluss.exe
(entpackt sich in einen Ordner)
von W. Schmelz
"AllesSchluss.vbs" beendet (fast) alle laufenden Programme,
mindestens aber die aus "PrgListe.txt".
Nach 12s Bedenkzeit fährt das Programm anschließend
den PC herunter oder startet ihn neu.
Eine Installation erfolgt beim ersten Programmstart.
QuellCode>
alleprozesseundtasks.vbs
Function AlleProzesseUndTasksArray( PC )
Die Tasks mit ProzessID 0 laufen nicht und sind im Taskmanager in 'Leerlaufprozess' (Idle)
zusammengefasst.
Function AlleProzesseUndTasksText( PC )
erfasst alle Prozesse aus Win32_Service und Win32_Process.
QuellCode>
Anmelden-an-Win9x.vbs
erzwingt eine Anmeldung an Win9x/ME, wenn dieses Skript im Autostart abgelegt ist.
Ich hatte einige PCs, bei denen Änderungen an der Registry, wie auf
WinFAQ.de
vorgeschlagen, nicht den gewünschten Erfolg brachten.
QuellCode>
arrayanzeigen.vbs
Function ArrayZeigen( InArray )
zeigt von einem Array nur die ersten und letzten Elemente an. Da die MsgBox nur 1024
Zeichen anzeigen kann, ist die Anzahl der angezeigten
Elemente von der Summe der Länge der einzelnen Elemente abhängig.
QuellCode>
arrayanzeigen-dateiinhalt.vbs
Function DateiInhalt( DateiX )
liest eine Datei in ein Array ein, die mit
Function ArrayZeigen( arrDateiLst )
angezeigt wird. Dann wird das Array mit
Function QuickSort( vntArray, intVon, intBis )
sortiert und erneut mit
Function ArrayZeigen( arrDateiLst )
angezeigt.
Sub DateiSchreiben( arrDaten, ZielDatei )
schreibt ein Array - hier das sortierte - in eine Datei (ohne die Quell-Datei zu überschreiben).
Function DateiInhalt( DateiX )
QuellCode>
arrayanzeigen-dateiliste.vbs
Function Dateilisteholen( Verz )
gibt ein Array mit dem kompletten Dateinamen von allen Dateien zurück, die in
dem übergebenen Verzeichnis vorhanden sind. Ein rekursives Auflisten der Datein
in Unterverzeichnissen erfolgt nicht!
Function ArrayZeigen( arrDateiLst )
zeigt die Dateiliste an, bevor diese Liste mit
Function QuickSort( vntArray, intVon, intBis )
sortiert und mit
Function ArrayZeigen( arrDateiLst )
erneut angezeigt wird . . . was eigentlich keinen richtigen Sinn macht, weil die Dateiliste ohnehin sortiert ist.
QuellCode>
arrayanzeigen-verzeichnisliste.vbs
Function Verzeichnislisteholen( QuellVerz )
gibt ein Array mit dem kompletten Verzeichnisnamen von allen Verzeichnissen zurück, die in
dem übergebenen Verzeichnis vorhanden sind. Ein rekursives Auflisten der Verzeichnisse
in Unterverzeichnissen erfolgt nicht!
Function ArrayZeigen( arrVerzLst )
zeigt die Verzeichnisliste an, bevor diese Liste mit
Function QuickSort( vntArray, intVon, intBis )
sortiert und mit
Function ArrayZeigen( arrVerzLst )
erneut angezeigt wird . . . was eigentlich keinen richtigen Sinn macht, weil die Verzeichnisliste ohnehin sortiert ist.
QuellCode>
AttributeChange.vbs
ermöglicht das Zurücksetzen der Attribute von Dateien. Dazu ein oder mehrere
Dateien bzw. Ordner auf das Skript ziehen und fallen lassen. Das Skript startet dann und
setzt alle Hidden-, System- und ReadOnly-Datei-Attribute zurück, das Archiv-Attribut
bleibt unverändert. Bei übergebenen Verzeichnissen werden in allen
Unterverzeichnissen die Attribute zurück gesetzt.
QuellCode>
autologonsetzen.hta
ist ein komfortablere Variante, um das AutoLogon an einem PC zu setzen
bzw. zu deaktivieren als
QuellCode>
AutoLogonEin.vbs
setzt das AutoLogon für WinNT/2k - wenn man entsprechende Rechte hat.
QuellCode>
autostart.vbs
Sub AutoStart( PC )
gibt ein Array zurück, in dem alle Autostarteinträge
gelistet sind. Jedes Array-Element enthält folgende,
durch Tabulator getrennte Informationen:
- Command; Befehl, .exe
- Description; Beschreibung, Name
- Location; z.B. Eintrag im AutoStart-Ordner oder der Registry-Schlüssel
- Name;häufig identisch mit Description
- User; z.B. 'All Users', '.DEFAULT' 'NT-AUTORITÄT\SYSTEM'
QuellCode>
autostart-run.vbs
ermittelt, was auf einem WinNT-PC so alles vor- und nach der Anmeldung automatisch
gestartet wird. Das Skript setzt Regobj.dll voraus.
QuellCode>
autostart-run2.vbs
von
"LICHTER",
aber von mir nicht geprüft.
Besser, man verwendet 'msconfig' über [Start] - [Ausführen].
QuellCode>
bilddatumordner.vbs
von W. Schmelz
bildet aus dem Datum der Original-Bilder einen zu erstellenden
Ordner (Ordnername mit Datumsangabe) mit bis zu 4
wählbaren Unter-Ordnern. Vorgeschlagen wird: "Original",
"Zwischen", "Bearbeitung". Die Bilder werden abschließend
in den zuerst genannten Unterordner verschoben.
QuellCode>
bildnummeriersortier.vbs
von W. Schmelz
zum Bilder eines Ordners benennen und/oder nummerieren oder wahlweise
Original-Bilder zweier Ordner durch Benennung nach Datum und Zeit
zeitlich passend ineinander sortieren und dann durch nummerieren.
Dabei sind pro Kamera secs Bilder pro Sekunde möglich.
Auf Wunsch kann vor die endgültigen Nummern ein Name gesetzt werden.
Die Kameranamen können angehängt werden:"08_Alp377_C" wie "Canon".
Bei einer Zeitverschiebung zwischen zwei Kameras kann der Zeitversatz eingegeben werden.
Als Messpunkt einfach mit beiden Kameras gleichzeitig ein Bild schießen.
Die Bilder werden im ausgesuchten Ordner gespeichert. Reicht der
Platz nicht, wird gefragt, wohin sonst diese Bilder sollen.
Gesteuert wird das durch Vorweg-Eingaben in eine HTA-Datei, die
durch zwei Klapptafeln den Fall, einen Ordner zu behandeln von dem
zweiten trennt, Bilder zweier Ordner zeitlich passend zu sortieren.
Diese Original - Ordner bleiben, daher ist keine Sicherung nötig.
QuellCode>
biosserialnumber-wmi.vbs
Function BIOSSN( PCName )
liest die Seriennummer (Serialnumber bzw. S/N), wie sie im BIOS hinterlegt ist, aus.
Function BFF()
läuft in Win7 nicht, weil CreateObject("UserAccounts.CommonDialog") nicht implementiert ist.
QuellCode>
browse-for-file-ie.vbs
Function ChooseFile()
ermöglicht eine Dateiauswahl mit IE-Funktionen.
QuellCode>
browse-for-file.vbs
Function BFF()
ermöglicht die Dateiauswahl, wobei auch eine Einschränkung auf den
Dateityp erfolgen kann . . . zum ausprobieren.
QuellCode>
browse-for-folder.vbs
Function BrowseForFolder( strPrompt, intBrowseInfo, vRootFolder )
enthält sehr viele Möglichkeiten, wie man mit VBS eine Datei- bzw. Verzeichnisauswahl
realisieren kann - von
codecomments.com/message367170.html.
Daraus kann man z.B. folgenden Einzeiler ableiten:
QuellCode>
browse-for-folder-1.vbs
QuellCode>
cd-lw-auf-zu.vbs
verwendet "WMPlayer.OCX" zum Öffnen und Schließen des CD-Laufwerkes.
QuellCode>
cd-lw-ermitteln.vbs
Function CDLwTest( Text )
sucht in allen CD-Laufwerken, ob eine bestimmte CD-ROM / DVD (VolumeName) eingelegt ist.
QuellCode>
CD-Menu.vbs
<Funktion
ist ein mögliches Skript, das über die Autostartfunktion des Betriebssystems
ein Auswahlmenü zur Verfügung stellt.
QuellCode>
CD-Start.vbs
zeigt, wie durch die Autorun-Funktion des (MS-) Betriebssystems
automatisch ein Skript gestartet werden kann.
QuellCode>
CDauswerfen.vbs
benutzt die Shell32.DLL (Vergl.
Verlaufs- bzw. Fortschrittsanzeige beim Kopieren),
um das CD-Laufwerk zu öffnen (CD Auswerfen).
QuellCode>
CDdurchsuchen.vbs
<Funktion
sucht nach einem CD-Laufwerk und schreibt eine Inhaltsliste, die
durchsucht werden kann. Oder man zieht eine Datei auf das Skript,
die sich dann durchsuchen lässt.
QuellCode>
changefilenames.vbs
von
P. Ladnar.
Du hast eine digitale Kamera und dich nervt es auch, die Dateinamen
mühselig manuell in sinnvolle Namen zu ändern?
Dann ist dieses Tool genau richtig für dich!
Es benennt alle Dateien eines wählbaren Verzeichnisses
in einen neuen, durchnummerierten Namen um.
QuellCode>
changefilenames-imag0001.vbs
von
Michael Wende
geht davon aus, dass die Bilddateien im Digicam Ordner von verschiedenen
Anlässen als z.B. IMAG0001 bis IMAG0144 vorliegen.
Wobei die Bilddateien IMAG0001 - IMAG0012 vom Geburtstag sind;
IMAG0013 - IMAG0025 sind die der Gartenparty. Das Skript ändert z.B. bei der Eingabe
von "0013 - 0025" und "Gartenparty Sommer" die Dateien IMAG0013 - IMAG0025 in
"Gartenparty Sommer0001" - "Gartenparty Sommer0013" um.
Infos>
chiffr60.exe bzw. chiffr60S.exe
beinhaltet ein Chiffrier- bzw. Verschlüsselungs-Lösung von
W. Schmelz.
In der "S"-Version wird "Shred.exe" verwendet, um auch Dateireste auf der Festplatte unlesbar zu machen.
QuellCode>
chkdsk-defrag.cmd
gehört ja eigentlich nicht hier her . . . aber führt Defrag und CHKDSK für C: und D: aus
(mit PC-Neustart).
QuellCode>
computer-function.vbs
Function ComputerFu( PCname )
gibt zurück, welche Funktion das Betriebssystem hat: "Standalone Workstation",
"Member Workstation", "Standalone Server", "Member Server",
"Backup Domain Controller", "Primary Domain Controller"
QuellCode>
convert-b4s-to-m3u.vbs
von Michael Wende
wandelt in einem angegebenen Ordner
alle 'alten' .4bs Winampplaylistdatei(en) in .m3u Playlist(en).
QuellCode>
dateilisteholenmitdatumundname.vbs
Function DateilisteHolenMitDatumUndName( Verz, DNA )
ist Bestandteil der Datei WinTuC_vbs.vbs des Projekts WinTuC.de
und erwartet ein Verzeichnis und die Zeichen, mit denen die Dateinamen beginnen,
die gelistet werden sollen; DNA steht für 'DateiNamenAnfang'.
Die Liste, die die Prozedur zurück gibt, ist ein Array, bei der jede Zeile
den Dateinamen und das Änderungsdatum dieser Datei enthält; getrennt
sind diese beiden Angaben durch '~' (Tilde). In WinTuC.de
wird diese Prozedur verwendet, um die Liste der KB-LOG-Dateien (meist 'C:\Windows\KB*.log' bzw.
'\\PCName\C$\Windows\KB*.log') zu erhalten.
QuellCode>
DateiNamenLangDIR.vbs
listet alle Dateien in einem Laufwerk, deren Name zusammen mit dem kompletten Pfad eine
bestimmte Länge überschreiten. (Eine solche Liste war erforderlich, weil ein
Datensicherungsprogramm wegen zu langer Dateinamen immer wieder abgebrochen ist.)
Ursprünglich sollte eine reine Skriptlösung eine Liste erstellen und dazu die
Verzeichnisse rekursiv (Routine von G. Born) durchsuchen. Zunächst verursachte das
Skript bei Dateinamen/Pfaden mit '#' eine Fehlermeldung und brach ab. Bei einem Test mit
dem DOS- bzw. Konsole-Kommando 'c: dir /s/b' stellte sich eine wesentlich
höhere Performance heraus: Auf einem Netzlaufwerk mit ca. 2.500 Dateien bzw. Pfaden
benötigte das DIR-Kommando nur 8 statt 85 Sekunden mit der Skript-Variante.
Zum Vergleich ist auch das DateiNamenLangVBS.vbs
verfügbar. Warum und unter welchen Bedingungen das '#' einen Fehler verursacht, wurde
auf Grund der Performanceunterschiede nicht weiter untersucht.
Am besten 'Ordner auf das Skript ziehen und fallen lassen' als Eingabe - das Ergebnis
wird mit trace32.exe angezeigt
(vergl. trace32.exe).
QuellCode>
dateispeichernunter.vbs
Function DatenInDateiSpeichernunter( Datei, Txt )
ist Bestandteil der Datei WinTuCKonfig.hta des Projekts WinTuC.de
und öffnet den 'Speichern unter'-Dialog. Sobald dieser mit der Angabe einer Datei
endet, wird der an die Prozedur übergebene Text in diese Datei gespeichert.
Das Skript öffnet im Anschluß die Datei mit Notepad.
QuellCode>
DateiTypRegistrieren.vbs
Sub DateiTypRegistrieren( DateiTyp, Progr )
legt ein Programm als Standard-Anwendung für einen
Dateityp fest (Dateiendung registrieren). Bei einem
Doppelklick auf eine Datei mit dieser Dateiendung
öffnet sich künftig diese Anwendung und erhält als
Parameter die doppelt geklickte Datei - so, wie Word
geöffnet wird, wenn man eine .doc-Datei doppelt klickt.
Das Skript registriert als Beispiel die Dateieindung "n-p"
für NotePad.
QuellCode>
Datensicherung.vbs
erstellt im Zielverzeichnis ein Verzeichnis mit Tagesdatum. Dort werden, gemäß
einer Verzeichnisliste, die zu sichernden Dateien abgelegt - mit der
rar.exe von
winrar.de, mit
robocopy.exe von
?RoboCopy?
oder mit xcopy. . . . mit Protokoll!
Am einfachsten ist m.E. das Packen in ein selbstentpackendes RAR-Archive mit der rar.exe.
Dazu muss nur die rar.exe und die default.sfx aus dem (aktuellem)
WinRAR-Installationspaket (z.B. wrar370d.exe) in das Windows-Verzeichnis kopiert werden.
Für die 7-Zip - Unterstützung
müssen nur die beiden Dateien 7z.sfx und 7z.exe
für das VBS verfügbar sein.
Infos>
desktopbild.exe
(entpackt sich in einen Ordner)
von W. Schmelz:
Dieses Programm wählt aus einer Sammlung von Bildern zufällig
eines aus und setzt es als Hintergrundbild - wenn gewünscht.
Auch aus dem Programm heraus kann ein Bild ausgewählt werden -
über die Desktop-Verknüpfung oder die Taskleiste.
JPG- und BMP-Bilder sind möglich.
Von W. Schmelz.
QuellCode>
CRLF-entfernen.vbs
entfernt alle CR, LF und CRLF aus einer Datei. Der wesentliche Unterschied zu
QuellCode>
cr2crlf.vbs
ist der, dass die Datei nicht
zeilenweise (.ReadLine), sonder mit einem .ReadAll komplett
eingelesen wird. Nur dadurch ist es möglich, auch die Zeilenenden am
Zeilenende zu entfernen.
QuellCode>
countdown-programmstart.hta
startet nach einer einstellbaren Zeit ein Programm - z.B. 'shutdown -r -f -t 10'; aber keine Angst:
im HTA ist 'notepad.exe' hinterlegt.
QuellCode>
datei-in-datum-sichern.vbs
überprüft, ob es eine bestimmte Datei gibt, kopiert diese in ein Sicherungsverzeichnis
und benennt sie dabei um - der neue Dateiname ist der Kopierzeitpunkt.
Die alte Datei wird gelöscht. Interressant ist hier die Prozedur
Function DatumZeit() , die aus
der aktuellen Zeit (mit Datum) eine Zeichenkette macht, die als Datei- oder
Verzeichnisname verwendet werden kann.
QuellCode>
Datei-Verzeichnis-Liste.vbs
<Funktion
enthält Beispielcode, wie man in einem oder dem aktuellen Verzeichnis alle Dateien
und alle Verzeichnisse ermittelt. Dazu werden alle Dateien bzw. Verzeichnisse
zunächst in ein Array geladen, dann etwas bearbeitet und das Ergebnis
dann angezeigt.
Man kann ein Verzeichnis oder eine Datei auf das Skript ziehen und fallen lassen.
QuellCode>
dateienvergleich-1.vbs
Dazu schreibt W. Schmelz:
"Vergleich zweier im Explorer ausgesuchter Dateien.
Die Unterschiede beider Dateien oder Einschübe werden zeilenweise
samt Nummern der Zeilen in der Datei Datei-Vgl.txt im Programmverzeichnis
ausgegeben.
Anfangs werden beide Dateien nummeriert angegeben.
Die Leerstellen zum Einrücken (am Zeilenanfang) werden
nicht beachtet. "Fc.exe" (FileCompare) von MS
versagte an mehreren Beispielen und meldete Fehler - so hat
sich die (Neu-) Programmierung immerhin gelohnt.
Das Programm ist ausschließlich auf VBS-Basis und benutzt nicht den
entsprechenden Befehlszeilenprogramm: fc . . . !"
. . wie das von mir:
QuellCode>
dateienvergleich.vbs
vergleicht, wie der Name bereits verrät, (zwei) Dateien - über eine Auswahl per
Binär- oder Textvergleich.
Dazu die beiden zu vergleichenden Dateien auf das Skript ziehen und fallen lassen (Drag & Drop).
Wird das Skript (mit Doppelklick) gestartet, bietet es an,
das Windows-Explorer - Kontextmenü zu erweitern. Dann kann man im
Explorer zwei Dateien markieren und (dann durch
Klicken mit der rechten Maus-Taste und über 'Senden an') die
markierten Dateien an das Skript übergeben.
Das Skript verwendet
das Befehlszeilenprogramm 'fc.exe', das beim zeilenweisen Vergleich
auch nach mehren (unterschiedlichen) Zeilen wieder synchronisiert -
DAS wollte ich nicht nach programmieren.
dateienverschieben_xxx.html
In den folgenden drei Skripten ist jeweils eine Prozedur enthalten,
durch die die Dateien eines übergebenen Arrays
Function Dateilisteholen( Verz )
in ein Zielverzeichnis
verschoben werden. Z.Z. kopieren die Skripte - kein Verschieben!
Um dies zu ändern, müssen die beiden Zeile im jeweiligen Skript getauscht werden:
' fso.MoveFile arrDateiLst( i ), ZwName
fso.CopyFile arrDateiLst( i ), ZwName
Ein Fehler wird angezeigt, wenn:
- die als Dateiliste übergebene Variable kein Array ist
- das Laufwerk des Zielverzeichnis nicht vorhanden ist
- der Freigabename eines Netzlaufwerks nicht erreichbar ist
Das ZielVerz. bzw. deren Unterverzeichnisse werden erstellt, sofern sie nicht vorhanden sind.
Als ZielVerz. muss ein Verzeichnis im Laufwerk bzw. im Freigabename angegeben werden.
QuellCode>
dateienverschieben_lfd.vbs
Function DateienVerschiebenLFD( arrDateiLst, ZielVerz )
fügt in den Dateinamen vor der Endung (nach einem Unterstrich) eine 3stellige Zahl
mit führenden Nullen ein; nach der letzten, die vorhandenen ist:
Sind t_000.txt, t_001.txt, t_002.txt, t_008.txt (von t.txt) vorhanden,
wird t_003.txt (nicht t_009.txt) erstellt. Sind alle Dateien bis t_999.txt,
gibt es eine Fehlermeldung und die Datei t_999.txt wird überschrieben!
QuellCode>
dateienverschieben_nr.vbs
Function DateienVerschiebenNR( arrDateiLst, ZielVerz )
fügt in den Dateinamen vor der Endung (nach einem Unterstrich) eine 3stellige Zahl
mit führenden Nullen ein; die erste, die möglich ist: Sind t_000.txt,
t_001.txt, t_002.txt, t_008.txt (von t.txt) vorhanden, wird t_003.txt (nicht
t_009.txt) erstellt. Sind alle Dateien bis t_999.txt, gibt es eine
Fehlermeldung und die Datei t_999.txt wird überschrieben!
QuellCode>
dateienverschieben_zufall.vbs
Function DateienVerschiebenZufall( arrDateiLst, ZielVerz )
fügt in den Dateinamen vor der Endung (nach einem Unterstrich) eine zufällige
5stellige Hex-Zahl ein.
QuellCode>
dateienverschieben-alteloeschen.vbs
ist aus dem Skript 'dateienalteliste.vbs' mit der Prozedur
Function AlteDateien( arrDateiLst, Alter, ZeitType )
und folgenden Erweiterungen entstanden:
- Function DateienVerschiebenZufall( arrDateiLst, ZielVerz ) aus dateienverschieben_zufall.vbs
- Function DateiListeLoeschen( arrDateiLst ) aus dateienaltdelete-3.vbs
- Parameter für das ZielVerz.
- Parameter um das Löschen zu aktivieren/deaktivieren (LoeschenAktiv = "YES")
QuellCode>
dateienalteliste.vbs
Function AlteDateien( arrDateiLst, Alter, ZeitType )
ist die wesentliche Prozedur, an die wird ein Array mit einer Dateiliste zu übergeben.
Das Ergebnis ist dieses Array, das nur noch die ausgewählten (bzw. alten)
Dateien enthält - die anderen Array-Elemente sind leer. Die Parameter für
den Aufruf der Prozedur:
arrDateiLst: wenn die Variable kein Array ist, wird ein Fehler angezeigt
Alter: kann ein Datum oder eine Zahl sein (mit führendem - oder +)
ZeitType: und Datum als Alter: ZeitType kann "VOR" oder "NACH" enthalten;
für z.B. "VOR" (dem) 03.10.89 (erstellt)
ZeitType: und Zahl als Alter: Für den ZeitType ist der Syntax der DateDiff-Funktion bindend:
yyyy Jahr; q Quartal; m Monat
d Tag; y Tag im Jahr;
w Wochentag; ww Woche im Jahr;
h Stunde; n Minute; s Sekunde (Es wurden nicht alle getestet)
+ heißt älter als (bzw. größer oder "NACH" ??? erstellt)
- heißt jünger als (bzw. kleiner oder "VOR" ??? erstellt)
Dateien in Tagesordner sammeln bei
http://heise.de/ct.
QuellCode>
DateienAltDelete.vbs
löscht alle alten Dateien in einem Verzeichnis (C:\Temp), die seit 100
Tagen nicht mehr geändert wurden (siehe auch VerzeichnisAltDelete).
QuellCode>
DateienAltDelete-2.vbs
von http://heise.de/ct.
QuellCode>
DateienAltDeleteTyp.vbs
löscht alle alten Dateien mit einer bestimmten Dateiendung.
QuellCode>
dateienaltverschieben.vbs
verschiebt Dateien ab einem einstellbarem Datum aus ein Verzeichnis in ein anderes.
QuellCode>
DateienAltDelete-3.vbs
ist aus dem Skript 'dateienalteliste.vbs' mit der Prozedur
Function AlteDateien( arrDateiLst, Alter, ZeitType )
und folgenden Erweiterungen entstanden:
- die Prozedur "DateiListeLoeschen arrDateiLst"
- Parameter um das Löschen zu aktivieren/deaktivieren (LoeschenAktiv = "YES")
QuellCode>
DateienVonHeute.vbs
ist eine Anwendung, die auf Datei-Verzeichnis-Liste.vbs aufbaut und nur die Dateien
auflistet, bei denen das Änderungsdatum mit dem aktuellen Tagesdatum übereinstimmt.
QuellCode>
dateierstellt.vbs
überwacht ein Verzeichnis (ohne CPU-Last) und meldet sich,
wenn eine Datei erstellt wurde.
QuellCode>
dateinachwortdurchsuchen.vbs
Dazu schreibt W. Schmelz:
Beliebige Datei auf dieses Programm ziehen und loslassen!
Ein zu suchendes Wort eingeben, Groß- und Kleinschreibung ist wichtig!
Die Zeilen mit dem gesuchten Wort werden dann mit der Nummerierung angezeigt!
QuellCode>
DateiAlsHtml.vbs
verwende ich, um eine Datei als HTML-Datei abzuspeichern. Dadurch kann eine
(Text-, Protokoll-, Skript-) ASCII-Datei (mit ein paar Zusatzinformationen)
im Browser dargestellt werden.
QuellCode>
DateiErweiterung-1Zeichen.vbs
ändert die Dateierweiterung (Extension) auf ein Zeichen:
muster.txt => muster.t
Ich weiß: Scheint nicht sonderlich sinnvoll, aber es hat mal jemand
nach so einem Skript gesucht.
QuellCode>
dateiliste-nach-datum.vbs
zeigt die Dateien in einem Verzeichnis nach Datum sortiert.
QuellCode>
dateiliste-nach-datum2.vbs
zeigt ebenfalls die Dateien in einem Verzeichnis nach Datum sortiert, benutzt
aber "ADOR.Recordset". (Wäre schön, wenn mir das mal jemand erklären könnte!)
QuellCode>
DateiNameSpeichern.vbs
speichert Dateiname und -pfad in eine Datei. Dazu mit der Maus eine Datei / Ordner auf
das Skript ziehen und der komplette Pfad wird in einer Datei gespeichert . . .
Oder man legt das Skript im "SendTo"-Ordner ab und kann dann mit der rechten
Maus-Taste die Info speichern. (Aufgrund einer Newsgroup-Anfrage entstanden.)
QuellCode>
DateinamenInKleinbuchstaben.vbs
Alle Dateiennamen eines Verzeichnises werden auf Kleinbuchstaben geändert.
QuellCode>
DateiSichernBak.vbs
sichert .BAK-Dateien. Folgendes Problem war zu lösen:
Ein Server schreibt eine .LOG-Datei. Sobald diese größer
als 1 MByte ist, wird sie in. *.bak umbenannt und dabei die alte
.BAK-Datei überschrieben - das geschieht ca. alle zwei Tage.
Das Skript prüft nun stündlich das Dateidatum (DateLastModified) dieser
.BAK-Datei und sobald sich dieses ändert, wird eine Kopie 'sicher gestellt'.
QuellCode>
zeileandateianfangeinfügen.vbs
Sub ErsteZeileDazu( Datei, Txt )
fügt in eine Datei eine (neue) erste Zeile ein. Dazu wird die
Datei komplett in eine Variable eingelesen, diese an die neue Zeile
angehängt und die Datei geschrieben.
QuellCode>
zeilennummer.vbs
Dazu schreibt W. Schmelz:
"Eine aufgesetzte Datei (eine Datei auf VBS ziehen und fallen lassen)
wird als neue Datei mit Nummerierung der Zeilen ausgegeben, auf
Wunsch sofort löschbar." Ähnlich wie
QuellCode>
DateiZeilenweiseLesenBearbeitenSchreiben.vbs
(DateiZLBS.vbs)
für eine weit verbreitete Aufgabe: Eine Datei ist komplett zu Lesen,
(ein paar) Zeilen sind zu ändern und in eine (neue) Datei zu schreiben.
Um die (Quell-) Datei nur kurz zu öffnen, wird diese zunächst in ein Array
gelesen, das Array dann bearbeitet und anschließend an eine Datei übergeben.
Dazu die zu ändernde Datei auf das Skript ziehen und fallen lassen (Drag & Drop).
Die Zieldatei wird mit Notepad angezeigt und beim Schließen von Notepad gelöscht.
QuellCode>
cr2crlf.vbs ist auf Grundlage von
DateiZLBS.vbs entstanden und wandelt in einer Datei
jedes CR zu CRLF um (und löscht alle CRLFLF).
QuellCode>
deltree.vbs
<Funktion
enthält im wesentlichen Code aus datei-verzeichnis-liste.vbs.
Wird eine Datei oder ein Verzeichnis auf das Skript gezogen (Drag & Drop), löscht es
alle Dateien und danach alle Unterverzeichnisse in einem Verzeichnis.
Zieht man eine Datei auf das Skript, wird
das Verzeichnis, in dem sich die Datei befindet, ermittelt und der Inhalt
wie beschrieben gelöscht.
Das eigentliche DELTREE befindet sich in einer SUB-Prozedur, in der auch eventuell
gesetzte Attribute zurück gesetzt werden. Vor der DELTREE-Prozedur erfolgen
in einer SUB-Prozedur Sicherheitsabfragen.
QuellCode>
dez2hex.vbs
von
Hubert Daubmeier
wandelt eine Dezimalzahl (0 bis ca. 100 Milliarden) in eine Hex-Zahl.
Bei Fließkommazahlen größer 2^53 kann es zu Rundungsfehlern kommen.
QuellCode>
DHCP Enable Automatically Using WSH VBScript -
ein HOWTO aus der MS Knowledge Base (Q197424).
QuellCode>
dir2htmlview
von
Chr. Römhild.
In dem Archiv befindet sich das Skript und einige Spezialdateien. 'dir2htmlview.vbs'
öffnet eine HTML-Datei und zeigt in einem Frame die Dateien des gedroppten Ordners an.
Das Skript benötigt ein Unterverzeichnis (FrameScroller) mit einigen Spezialdateien.
QuellCode>
DirAnalyze.vbs
Von
Ingolf Müller
findet verdächtig lange Verzeichnisnamen im Dateisystem und speichert sie in einer LOG-Datei.
Skript muss mit administrativen Rechten ausgeführt werden!!! Wenn der Administrator nicht
überall zumindest Leserechte hat, meldet das Programm für das erste zutreffende Verzeichnis
einen Fehler und bricht die Verarbeitung ab.
Vergl. dazu auch
DateiNamenLangDIR.vbs.
QuellCode>
disk0-test.vbs
verwendet DISKPART.EXE in der Exec-Methode um die Größe von 'DISK 0' zu ermitteln -
egal, wie viel Partitionen die Platte enthält.
QuellCode>
dnstesten.vbs
Function DNSTesten( PC )
liest das Verbindungsspezifische DNS-Suffix aus, das normalerweise
per DHCP auf dem Client gesetzt wird. Dadurch lässt sich z.B. der
Standort bestimmen.
QuellCode>
DruckerAuswahl.vbs
ist in eine universell einsetzbare Function-Prozedur verpackt.
Das Skript bietet eine Auswahl der Netzwerk- bzw. der lokalen Drucker;
Virtuelle Drucker (FinePrint; PDF; Drucken in Datei) stehen
nicht zur Auswahl - das lässt sich aber ändern.
QuellCode>
DruckerListe.vbs
zeigt alle installierten Drucker mit deren Schnittstelle (lokale bzw. Netzwerkpfad) und welcher Drucker der Standarddrucker ist - das Skript
setzt Regobj.dll voraus.
QuellCode>
wmi-druckerliste.vbs
zeigt dank WMI mehr Informationen über angeschlossene Drucker.
QuellCode>
erinnerung.vbs
erstellt mit Datum/Zeit eine versteckte "C:\Erinnerung.txt"
und setzt in der Egistry "/All Users/.../Autostart/" einen
Eintrag, damit beim nächsten Systemstart das Skript
(versteckt) wieder anläuft (und die .txt ausliest) . . .
bis die Zeit REIF ist.
QuellCode>
eventlog.vbs
Den Abarbeitungsstatus eines Skripts kann man mit einem
Einzeiler oder mit
Sub AnwendungEreignisInEventLog( EventType, Txt )
in die Ereignisanzeige (Eventlog) Anwendungen (Application)
schreiben.
QuellCode>
Eventlog-BlueScreen.vbs
BlueScreens stehen nicht im Eventlog. Um zu sehen, wie oft es möglicherweise
einen gegeben hat, kann man auswerten, wie oft die EventID 6006 (Shutdown)
fehlt . . . und dies macht dieses Skript.
QuellCode>
exec-hidden.vbs
QuellCode>
exec-hidden-plus.vbs
QuellCode>
exec-test.vbs
sind Beispielskripte, die die WSHShell.Exec-Methode benutzen,
wie sie mit den Windows Script - Technologien Version 5.6
von MS eingeführt wurde.
Nähere Informationen und einige
Erklärungen
finden sich unter
Programme starten - WSHShell.Exec-Methode
QuellCode>
fso-beispielcode.vbs
ist eine Kopie aus der VisualBasicScripting-Hilfe v5.5 von MS und soll hier nur
eine einfach zu durchsuchende Sammlung der FSO-Objekte sein.
QuellCode>
GmxAutoLogin.vbs
lädt im IE eine Site und übernimmt das Login.
Das Skript von
Raoul A.
wurde erweitert und speichert
einmal eingegebene Anmeldedaten in einer Datei (leider im Klartext)
QuellCode>
GmxAutoLogin2.vbs
QuellCode>
GmxAutoLogin2009.vbs
QuellCode>
GmxAutoLogin2010.vbs
war erforderlich, weil die Login-Seite von GMX (wieder einmal) verändert wurde.
QuellCode>
HDD-Test-Kopieren.vbs
kopiert ein Verzeichnis auf ein anderes Laufwerk und zeigt dabei jetzt eine
Verlaufs- bzw. Fortschrittsanzeige an. Dabei werden die benötigte Zeit gemessen
und die übertragene Datenmenge bestimmt, um die Übertragungsrate in MB/s zu
ermitteln. Dies wird entsprechend protokolliert. Alternativ kann eine RAM-Disk als Quelle
angegeben werden, damit die Lesegeschwindigkeit das Ergebnis nicht beeinflusst
(Q257405 -
W2k-RAM-Disk /
NT4-RAM-Disk).
Die Fortschrittsanzeige wird unter Sub/Function
erklärt.
QuellCode>
hintergrundbild.vbs
ändert und aktualisiert das Hintergrundbild des Desktops - auch Wallpaper genannt.
Hintergrundbild mit JPGs
(mit automatischem, zufälligem Wechsel) bei
http://heise.de/ct.
QuellCode>
HistoryFavoritesLoeschen.vbs
löscht u.a. die Temporary, History- und Favoriten-Verzeichnisse. Dazu müssen
noch die entsprechenden fso.DeleteFolder - Zeilen frei gegeben werden.
QuellCode>
html2txt.vbs
'zieht' eine Internetseite und speichert diese (den Quelltext; ohne Bilder, ohne CSS) in eine Datei.
QuellCode>
htmldateispeichern.vbs
Function getURL( url, un, pw )
von cmdr
'zieht' den Inhalt einer Internetseite (den Quelltext; ohne Bilder, ohne CSS).
Im Skript wird der Inhalt einer Seite in einer MsgBox angezeigt und der Inhalt einer
anderen als HTML-Datei lokal gespeichert und (mit .Run) aufgerufen (und
dadurch im als Standard definierten Browser angezeigt).
QuellCode>
http-server-test.vbs
zieht in regelmäßigen Abständen eine bestimmte HTML-Seite z.B. aus dem Internet
und prüft, ob ein bestimmtes Word enthalten ist.
QuellCode>
httpget.vbs
Function HttpGet( url )
Im Skript wird als Beispiel das aktuelle Wetter (und weitere
Daten) von
http://www.webservicex.net/globalweather.asmx
für Berlin abgefragt, in eine XML-Datei gespeichert und
angezeigt. Welche Abfragen vom Webservice angenommen werden,
erfährt man, wenn man diese Adr. mit einem Browser aufruft.
QuellCode>
icq5-verlauflesen.vbs
von mike-winxp@gmx.de:
Eine XML-Verlaufsdatei von ICQ5 einfach auf das Script ziehen und fallen lassen.
QuellCode>
icq6-verlauflesen.vbs
von mike-winxp@gmx.de:
Skript zum Lesen einer Verlaufsdatei (von icq6; ICQ v6.x).
Dazu einfach die "Messages.mdb"-Datei auf das Script ziehen
und fallen lassen. Die Datei befindet sich (unter WinXP):
C:\Dokumente und Einstellungen\[UserName]\Anwendungsdaten\ICQ\[ICQ Nummer]\Messages.mdb
bzw. %APPDATA%\ICQ\[Ihre ICQ Nummer]\Messages.mdb
QuellCode>
IE-Start.vbs
testet mit dem Ping-Befehl, ob der Router im Netzwerk antwortet - wenn ja, testet das
Skript, ob ein DNS erreichbar ist - wenn ja, wird der MS&InternetExplorer gestartet.
Sinnvoll ist dies im Heimnetzwerk, wenn der Router z.B. ein
fli4l-Disketten-Router mit
analogem Modem ist.
QuellCode>
InternetTest.vbs
ermittelt, ob das Internet verfügbar ist, in dem es testet,
ob eine URL erreichbar ist. Gegenüber dem Ping-Befehl
(wie in IE-Start.vbs) funktioniert das auch hinter / vor einem Proxy.
QuellCode>
ip-adresse.vbs
zeigt den PC-Namen und alle IP-Adressen des (lokalen) PCs an, auf dem das Skript gestartet wurde.
Je nach Betriebssystem (Win9x/ME oder Win2k/XP) wird IPCONFIG oder WINIPCFG verwendet.
QuellCode>
ip-adresse2.vbs
Der Code ist prinzipiell der selbe wie in ip-adresse.vbs.
Im Unterschied dazu sind die entscheidenden Zeilen in eine Function-Prozedur
ausgelagert. So kann der Code problemlos in andere Skripte übernommen werden.
QuellCode>
ip-adresse3.vbs
In diesem Skript ist alles anders: Damit die IP-Adresse mit IPCONFIG
ermittelt werden kann, ohne dass eine Schreiboperation auf einen Datenträger
erfolgt, werden im 'unsichtbaren' Aufruf von
QuellCode>
exechiddenplus.vbs
alle IPCONFIG-Ausgaben abgefangen und ausgewertet.
QuellCode>
wmi-ip-adresse.vbs
Function wmiIPadr( PCName )
ermittelt alle IP-Adr. mit WMI.
QuellCode>
IP-aus-Name.vbs
ermittelt die IP-Adresse aus einem (DNS-) PC-Namen, in dem ein PING
ausgeführt, die Ausgaben/Anzeigen davon in eine Datei umgeleitet und
diese dann ausgewertet werden.
QuellCode>
IP-aus-Name2.vbs
Function IPAdr( PC )
benutzt die WSHShell.Exec-Methode, schreibt also keine Datei.
QuellCode>
ipNetz-loginScr.vbs
ist das Ergebnis einer Newsgroup-Anfrage. In einem Netzwerk mit mehreren IP-Netzen
(z.B. 192.168.150.xxx und 192.168.151.xxx) sollen für PCs, je nachdem in welchen
IP-Netz sich der PC befindet, ein anderes Login-Skript ausgeführt werden. (Als
Login-Skripte sind unter WinNT/2k nur *.bat und *.cmd Dateien möglich. Von dort
aus lassen sich *.vbs - Skripte mit 'wscript skript.vbs' aufrufen.)
QuellCode>
immerwieder.vbs
startet in regelmäßigen Abständen verschiedene Skripte. Z.B. 10.vbs
nach 10s, 70s, 130ecs . . .
(oder 10min, 70min, 130min . . .) ab Skriptstart gezählt.
QuellCode>
zeitgestaffelt.vbs
startet in regelmäßigen Abständen verschiedene Skripte. Z.B. 10.vbs
um 08:07:10, 08:08:10, 08:09:10 . . .
(oder 08:10:00, 09:10:00, 10:10:00 . . .),
also nach einer vollen Minute (Stunde).
QuellCode>
kontext-anzahlzeichenimpfad.vbs
Im Kontext-Menü des Windows-Explorers wird ein Eintrag
hinzugefügt durch den die Anzahl der Zeichen des Pfades zu einer
Datei bzw. zu einem Verzeichnis ermittelt und angezeigt wird.
Beim direkten Aufruf des VBS wird geprüft, ob es bereits
'installiert' ist - wenn ja, wird eine 'Deinstallation'
angeboten.
QuellCode>
kontext-commandprompthier.vbs
erweitert das Kontextmenü um einen Eintrag 'Command Prompt hier'.
Durch den Klick mit der rechten Maus-Taste auf ein Verzeichnis und der Auswahl
'Command Prompt hier' öffnet eine Eingabeaufforderung (DOS-Prompt)
mit bzw. in diesem Verzeichnis.
QuellCode>
kontext-erweiterungenanzeigen.vbs
Function Kontext( PC )
listet die Einträge, die für die zusätzlichen Optionen
des Kontextmenüs für Verzeichnisse (Klick mit der rechten
Maus-Taste auf einen Ordner) oder Dateien hinterlegt sind.
QuellCode>
kontext-pfadinzwischenablage.vbs
Im Kontext-Menü des Windows-Explorers werden zwei Einträge hinzugefügt.
1. "Pfad (Netzpfad) in die Zwischenablage kopieren" -
aus dem Pfad zu einer Datei / zu einem Verzeichnis wird versucht den Netzpfad zu ermitteln und in die
Zwischenablage kopiert:
C:\Windows\System32\calc.exe (auf "MeinPC.Heim.Netz") wird zu
\\MeinPC\c$\Windows\System32\calc.exe
Fehlt c$, bleibt es bei C:\Windows\System32\calc.exe
D:\AutoRun.inf (CD-Laufwerk auf "PC003.geht.net") wird zu
\\PC003\d$\AutoRun.inf
Fehlt d$, bleibt es bei D:\AutoRun.inf
Z:\Sicherung\08-02-13\wichtig.zip (auf "Server1.home.net") wird zu
\\Server1\Sicherung\08-02-13\wichtig.zip
\\Server1\Sicherung\08-02-13\wichtig.zip bleibt bei
\\Server1\Sicherung\08-02-13\wichtig.zip
2. "Pfad (Laufwerk) in die Zwischenablage
kopieren" - der Pfad zu einer Datei / zu einem Verzeichnis wird
unverändert in die Zwischenablage kopiert.
Werden mehrere Dateien / Verzeichnisse übergeben, wird nur
ein Parameter verwendet (der erste oder der letzte).
Beim direkten Aufruf des VBS wird geprüft, ob es bereits
'installiert' ist - wenn ja, wird eine 'Deinstallation'
angeboten.
QuellCode>
kontext-unc2clipbrd.vbs
von Peter Ackermann erweitert das Kontextmenü um einen Eintrag
'UNC-Pfad in die Zwischenablage kopieren'.
Durch einen Klick mit der rechten Maus-Taste auf ein Objekt im WindowsExplorer
wird der komplette Pfad (zur Datei / zum Verzeichnis; inkl. Datei- / Verzeichnisname)
in die Zwischenablage kopiert.
QuellCode>
kontext-pfadnachzwischenablage.vbs
ist das gleiche Skript, nur fehlen hier die spitzen Klammern,
die den Pfad in 'umgeben'.
QuellCode>
LastLogon.vbs
zeigt von einem Computer den Benutzer an, der zuletzt angemeldet war bzw. noch angemeldet
ist. Das Skript setzt Regobj.dll voraus.
QuellCode>
WMI-UserIsLogon.vbs
Function UserIsLogon( PC )
ermittelt, wer gerade an einem PC angemeldet ist.
QuellCode>
laufwerk-c.vbs
Function FestplattenTest( Lw )
zeigt wieviel Speicher auf Laufwerk C: noch frei ist.
QuellCode>
LaufWerkListe.vbs
zeigt zu allen Laufwerken den Typ, die Größe und den freien Speicherplatz an und
schreibt dies in eine Protokoll-Datei - jetzt ohne Fehler bei Laufwerken über 32GB.
QuellCode>
LaufWerkListe2.vbs
Function LwListe() zur leichteren Verwendung in anderen Skripten.
QuellCode>
laufwerksbuchstabefrei
Function LwFrei()
ermittelt den ersten freien Laufwerksbuchstaben.
QuellCode>
wmi-lfddienste.vbs
Function LfdDiensteLst()
schreibt alle Dienste (mit allen 'Unter-Diensten') in eine
.CSV-Datei - der Separator ist ";". Die Prozedur verursacht
einige 10s (20..80s) 100% CPU-Last.
QuellCode>
LfdProzess-Kill.vbs
Das Skript erwartet 3 oder 4 Parameter ( ProzessName MeldungsText AnzahlDerMeldung Kill ):
LfdProzess-kill.vbs IExplore.exe "Bitte den Internetexplorer beenden!" 3
LfdProzess-KiLL.vbs IExplore.exe "Bitte den Internetexplorer beenden!" 3 KilL
Das Skript prüft alle 30s, ob die Anwendung noch läuft -
wenn ja, fordert es den Anwender mit "MeldungsText" auf, die Anwendung zu beenden.
Ist die Anwendung nach "AnzahlDerMeldung" immer noch aktiv, beendet sich das Skript
ohne Aktion. Enthält der 4. Parameter "KILL", wird die Anwendung bzw. sein
Prozess beendet (ge-kill-t, abgeschossen).
Die meiste 'Arbeit' übernehmen dabei zwei Prozeduren:
Function LfdProzessTest( ProzessName )
Function LfdProzessKill( ProzessID )
QuellCode>
wmi-lfdprogramme.vbs
Function LfdProgrList()
listet alle laufenden Programme / Prozesse. Die Prozedur
ist in eine Do..Loop-Schleife eingebunden und wird dadurch
innerhalb von 30min zu jeder vollen Minute aufgerufen.
In die LOG-Datei erfolgen nur Einträge, wenn sich die Liste
der laufenden Programme geändert hat.
QuellCode>
LinkInSendTo.vbs
Function AutoStartLink( SendToLink )
Ist diese Prozedur in einem Skript enthalten und wird bei jedem Skriptaufruf ausgeführt,
verhält sich das Skript wie folgt:
beim ersten Aufruf:
Das Skript kopiert sich in den Ordner "c:\programme\dieseyer.de\".
Ein Link (mit '-Install'-Parameter) zu diesem Skript wird im
Autostart-Ordner (All Users) angelegt, damit nach jeder User-Anmeldung
ein Link im (User abhängigen) 'SendTo'-Ordner eingefügt wird.
Das Skript setzt einen Link im 'SendTo'-Ordner (des zur Zeit
angemeldeten Users).
beim Aufruf durch Autostart:
(mit '-Install'-Parameter) wird ein Link zu diesem Skript im
'SendTo'-Ordner (des zur Zeit angemeldeten User) angelegt.
beim Aufruf durch 'Senden an' bzw. 'SendTo'::
Man kann jetzt im Explorer Datei(en) markieren und (dann durch
Klicken mit der rechten Maus-Taste und über 'Senden an') die
markierten Dateien an das Skript übergeben.
QuellCode>
WMI-ListServices.vbs
von
U. Janke
listet alle Services eines Rechners.
QuellCode>
logdatei.vbs
Enthält vier Prozeduren zum Erstellen bzw. Erweitern von LOG-Dateien.
Um laufende VBS-Skripte zu beobachten lassen sich zwei Ansätze verwenden:
1. Die Skripte werden mit CSCRIPT.EXE gestartet
und laufen dadurch in einer Art 'DOS-Fenster' (schwarzer Hintergrund mit weißem
Text). Jede WScript.Echo-Meldung des Skripts erscheint im Fenster und schiebt
ggf. die letzten Meldungen nach oben. Die Beispielskripte von MS (u.a. in
der Scripting-Hilfe und im 'Portable Script Center') sind so programmiert.
Der Nachteil: Sind die Meldungen aus dem Fenster 'raus gelaufen' oder
ist das Fenster geschlossen, lässt sich nicht mehr nachvollziehen, was einmal geschehen ist.
2. Die Skripte schreiben LOG-Dateien.
Um LOG-Dateien während der Skript-Abarbeitung zu beobachten, sind LOG-Parser
erforderlich, die die Anzeige aktualisieren, wenn das Skript eine Zeile
hinzufügt. Zwei LOG-Parser seien hier genannt: baretail.exe (vergl.
baremetalsoft.com)
und trace32.exe (vergl.
"MS KB272436" bzw. den
"SMS Tools") -
auf letzteres soll näher eingegangen werden:
trace32.exe zeigt einzelne, umfangreiche LOG-Einträge (einer Zeile) in einem
(Status-) Fenster an.
Wird das Trace32-Format verwendet, kann trace32.exe Zeilen (z.B. mit
Fehlermeldungen) in zwei unterschiedlichen Hintergrundfarben anzeigen.
Dazu muss in der LOG-Zeile ein ErrType definiert werden:
1 - normal (weißer Hintergrund)
2 - Zeile mit gelben Hintergrund; z.B. für Warnungen
3 - Zeile mit rotem Hintergrund; z.B. für Fehler- / Error-Meldungen
Allerdings sind LOG-Dateien im Trace32-Format nur mit trace32.exe lesbar.
Und ist ein LOG-Eintrag bzw. eine LOG-Zeile nicht im Trace32-Format,
zeigt trace32.exe mitunter keine weiteren Zeilen nach dem Formatfehler an.
Die folgenden Prozeduren schreiben passende LOG-Dateien.
Außerhalb der Prozeduren sollte eine Variable 'LogDatei' definiert werden
und den kompletten Pfad zur LOG-Datei enthalten. (Die Prozeduren
schreiben sonst eine LOG-Datei in das Verzeichnis, in dem sich das Skript
selbst befindet.)
Und: Natürlich sind Skripte die LOGs schreiben langsamer!
Sub Trace32Log( LogTxt, ErrType )
schreibt eine LOG-Datei im Trace32-Format und erwartet beim Aufruf zwei
Parameter, wobei der zweite als ErrType
die Hintergrundfarbe für die Anzeige mit trace32.exe definiert - zusätzlich:
0 - löscht die LOG-Datei und erstellt eine neue.
Die Prozedur ist ohne Anpassung in HTA und VBS verwendbar.
Sub LogTrace32( LogTxt )
Filter in der Prozedur ermitteln aus LogTxt einen errType für die Anzeige mit trace32.exe.
Ist LogTxt leer ( "" ), wird eine neue LOG-Datei erstellt
Sub LogEintrag( LogTxt )
schreibt eine 'normale' LOG-Datei, die nicht nur mit einem LOG-Parser sondern
auch mit Notepad lesbar ist. Am Zeilenanfang (also vor den Inhalt von LogTxt)
wird die aktuelle Zeit mit Datum eingefügt.
Ist LogTxt leer ( "" ), wird eine neue LOG-Datei erstellt.
Sub LogText( LogTxt )
ist ein 'Einzeiler' ohne jeden Schnick-Schnack
Die Einträge in LOG-Dateien lassen sich besser dem Code zuordnen,
wenn die Zeilennummer an die Prozedur mit übergeben wird.
Um diese im gesamten Code zu aktualisieren, bietet sich
sendenan-sicherung.vbs an.
QuellCode>
trace32log.vbs
Im Gegensatz zu "logdatei.vbs", die 'nur' (Beispiel-)
Prozeduren für den Einsatz in VBS-Dateien enthalten,
kann dieses Skript z.B. aus Batch-Skripten heraus
aufgerufen werden - Batch-Skripte selbst können nur sehr
umständlich LOG-Dateien im Trace32-Format schreiben.
trace32log.vbs erwartet drei Parameter:
1. ErrType:
0 - löscht die LOG-Datei und erstellt eine neue.
1 - normale (weißer Hintergrund)
2 - Zeile mit gelben Hintergrund
3 - Zeile mit rotem Hintergrund
2. LOG-Datei: In diese wird der Eintrag vorgenommen; dieser
Parameter muss von " (Anführungszeichen) umschlossen sein.
3. LogTxt: Die Zeichenkette (mit Leerschritten) nach dem
letzten " wird als Text in die LOG-Datei geschrieben.
Beispiele für trace32log.vbs - Aufrufe aus einer Batch heraus
(siehe auch log.cmd):
trace32log.vbs 0 "c:\temp\bsp.log" neue LOG-Datei
trace32log.vbs 1 "c:\temp\bsp.log" normaler LOG-Eintrag
start trace32log.vbs 3 "%~dpn0.log" ein roter LOG-Eintrag
trace32log.vbs 2 "%~dpn0.log" ein gelber LOG-Eintrag
trace32log.vbs 3 "%~dpn0.log" 12 :: ein "roter" LOG-Eintrag
In einer Batch ergibt "%~dpn0.log":
"c:\tst\xx.cmd" => "c:\tst\xx.log" bzw.
"\\srv1\Share9\bsp\1.cmd" => "\\srv1\Share9\bsp\1.log"
d - Laufwerksbuchstabe mit Doppelpunkt (Drvive; hier "C:")
p - Pfad (Path; hier "\tst\"")
n - Dateiname (Name; hier "xx")
x - Erweiterung mit Punkt (eXtension; hier ".cmd")
0 - bezieht sich auf die aktuelle Datei (c:\tst\xx.cmd)
Diese und weitere Parameter werden durch "call /?", "If /?" oder "cmd /?"
in einer Eingabeaufforderung (DOS-Box) angezeigt und z.T. erklärt.
QuellCode>
lokalegruppen.vbs
LokaleGruppen( PCname )
zeigt die auf dem PC lokal verfügbaren Gruppen (u.a. "Administratoren")
und wer oder was Mitglied in den lokalen Gruppen ist.
QuellCode>
MAC-Adr.vbs
gibt unter WinNT/2k/XP die MAC-Adr. der Netzwerkkarte(n) aus.
QuellCode>
MAC-Adr2.vbs
Bei mehreren NIC wird die letzte MAC-Adr. ausgegeben, die nicht mit "169." beginnt.
(Alles schön in eine Function-Prozedur verpackt.)
QuellCode>
mac-adr3.vbs
Function WMIMACadr( PC )
gibt die MAC-Adr. der aktiven Netzwerkkarte(n) zurück.
QuellCode>
MemberOfADGroup.vbs
Function MemberOfGroup( PCObjAD )
aus 'The Portable Script Center - Version 3.0, November 2004':
"List the Active Directory Groups a User Belongs To"
QuellCode>
mp3-BitRate-Change.vbs
wandelt alle mp3-Dateien im aktuellen Ordner in Dateien mit einer anderen BitRate um. Dazu
am Besten das Skript auf den Desktop (LAME muss c:\lame.exe sein) ablegen, den (Windows-)
Explorer nicht! im Vollbild-Modus starten und die Verzeichnisse mit der Maus auf das Skript
ziehen und fallen lassen . . . Die Dateinamen der ALTEN Dateien enden mit ".mp3-".
QuellCode>
mp3-BitRate-Change2.vbs
Es werden auch die Dateien in Unterverzeichnissen (nicht Unter-,
Unter-, . . -verzeichnissen) umgewandelt.
QuellCode>
nachrichtverstecken.hta
von mike-winxp@gmx.de
versteckt Nachrichten oder Textdateien in anderen Dateien. Hierbei wird die Nachricht zunächst mit
einem beliebigen Passwort verschlüsselt (einfacher Algorithmus für niedrige Sicherheitsansprüche)
und anschließend an eine vorhandene Datei (z.B. "FeteAmBaggersse.JPG") angehängt - die Tarnung ist perfekt.
Für vertrauliche Nachrichten lässt sich ein Text verschlüsseln.
QuellCode>
NetzLaufWerkeDetails.vbs
zeigt zu jedem Netzlaufwerk-Laufwerksbuchstaben den Server und den Freigabenamen an.
QuellCode>
NetzVerb-zu-Server.vbs
ermöglicht die Verbindung zu einem Server in einer anderen Domäne mit einem
anderen Anmeldenamen. Aber das Passwort muss gleich sein! In einem sehr großen Netz
melden sich die Benutzer am PC mit 'PCDom\Name' und zur Serververwaltung am Server mit
'ServerDom\Server-Name' an. Dem normalen Anmeldenamen ist 'Server-' voran zu stellen, so
dass der Anmeldenamen 'PMaier' zu 'Server-PMaier' wird. Falls der Server beispielsweise
bereits für das Home-Laufwerk verwendet wird, muss diese Verbindung vorher getrennt
werden. Zur Server-Verwaltung mit SrvMgr oder UsrMgr ist auch 'IPC$' einsetzbar.
QuellCode>
wmi-netzwerkeigenschaften.vbs
Listet die Netzwerkeigenschaften von (remote) PCs - hier die
IP-Adressen von 192.168.1.20 bis 192.168.1.22.
Protokoll am Besten mit baretail beobachten.
QuellCode>
now.vbs
überschreibt die now()-Methode und gibt die Zeit auf zwei Stellen nach dem Komma
genau zurück - z.B. 10.10.2005 10:10:55,88.
Siehe auch
QuellCode>
10ms.vbs
QuellCode>
wmi-NumLock-ein.vbs
schaltet NumLock für den Anmeldedialog ein (Vergl. support.microsoft.com ID=154529.
Das besondere: Zum Setzen eines Wertes in die Registry wird nicht RegWrite sonder WMI benutzt.
QuellCode>
offenedateien.vbs
listet geöffnete Dateien.
QuellCode>
Ordner-Leeren.vbs
leert ein Verzeichnis, in dem die enthaltenen Dateien in einen anderen
Ordner kopiert werden. Gibt es dort bereits Dateien mit gleichen Namen,
wird eine dreistellige Zahl vor der Dateiendung eingefügt.
Unterordner werden nicht abgearbeitet.
QuellCode>
ordnervergleich.vbs
von W. Schmelz
vergleicht zwei ausgesuchte Ordner über ihrem Gesamt-Inhalt.
Dabei wird untersucht, ob in beiden Ordnern alle Unterverzeichnisse
vorhanden sind und die gleiche Größe haben. Außer den evtln.
Unterverzeichnissen wird die Anwesenheit der einzelnen Dateien verglichen
und, ob diese Dateien in Datum und in Größe übereinstimmen.
Sind irgendwo Unterschiede, erfolgt eine Meldung.
Es sind Ordner mit oder ohne Unterverzeichnisse prüfbar.
QuellCode>
patchlist.vbs
listet die aktuell installierten MS-Patche.
QuellCode>
pc-aus-W9x.vbs
QuellCode>
pc-restart-w9x.vbs
startet Scandisk und die Defragmentierung für alle Laufwerke und schaltet den
(ATX-) PC aus bzw. veranlasst einen Neustart - natürlich nur bei Win9x.
QuellCode>
W2kRestart.vbs
QuellCode>
W2kShutDown.vbs
verwendet SendKeys. Das funktioniert nur, wenn der Desktop vorhanden, also jemand
angemeldet ist.
QuellCode>
wmi-pcreboot.vbs
sendet mit WMI eine Reboot-Aufforderung an einen PC.
QuellCode>
PC-ein-Test.vbs
das Script prüft alle 60s per PING, ob ein PC eingeschaltet ist.
Der Test beendet sich selbst, wenn die .run - Datei gelöscht wird.
Der Vorteil gegenüber einem (Dauer-) Ping:
1. Es erscheint nur eine Meldung, wenn der PC auf Ping antwortet.
2. Ändert sich die IP-Adr. (durch DHCP), wird die neue IP-Adr. (durch DNS) auch neu aufgelöst.
QuellCode>
pc-im-ad.vbs
Function PCimAD( AD, PCname )
gibt den 'distinguishedName' eines PCs zurück - also etwas in der Art
"LDAP://cn=MyBigPC,ou=Management,dc=NA,dc=fabrikam,dc=com". Das AD wird
dazu nicht mit einer For..Each-Schleife durchlaufen, bis
der PC gefunden wird, sonder es wird 'direkt' gefragt.
QuellCode>
pc-info.vbs
von
sk0r
sammelt verschiedene Infos über den PC, auf dem das Skript gestartet wurde.
QuellCode>
pc-analyse.vbs
von W. Schmelz
analysiert auf WinXP-PCs Festplatten, USB- und DVD-Laufwerke, ermittelt
Laufwerks- und RAM-Belegungen,
das wichtige zur CPU, die Windows - Version, das Windows - Verzeichnis,
den registrierten 'Eigentümer' und Daten über die Grafikkarte.
Die Informationen werden in "PC-Analyse.vbs.txt" geschrieben,
die Datei geöffnet und anschließend gelöscht.
QuellCode>
pckonfiguration-wintuc.vbs
QuellCode>
pckonfiguration-wintuc_fwmgr.vbs
von ~~~Dexter~~~.
muss mit lokalen Admin-Rechten auf einem PC ausgeführt werden, um diesen
aus der Ferne (remote) verwalten zu können.
Aus Sicherheitsgründen sind in kleineren Arbeitsgruppen und im Heimnetzwerk
Fernzugriffsrechte eingeschränkt und benötigte Dienste deaktiviert.
Das Skript korrigiert dies; es ist Bestandteil des
WinTuC.de-Projekts.
QuellCode>
PCmitDHCP.vbs
ermittelt, ob ein PC mit oder ohne DHCP arbeitet. Wird das Skript im LoginScript
aufgerufen, gibt die LOG-Datei eine Übersicht zu allen PCs.
QuellCode>
wmi-pcname-aus-ipadr.vbs
Function PCname( IPAdr )
ermittelt aus einer AP-Adresse per WMI den dazugehörigen PC-Namen.
QuellCode>
PermanentPopup.vbs
Sub PermanentPopUp( SkriptName, Text )
erzeugt ein Tochterskript und startet dieses. Das Tochterskript meldet sich
immer wieder mit einem PopUp, solange es das Tochterskript (als Datei) noch
gibt. Das Hauptskript kann das Tochterskript löschen und so erneute
PopUp-Meldungen unterbinden. Hier wird der Umstand ausgenutzt, dass ein Skript
vor der Ausführung komplett geladen wird.
QuellCode>
wmi-ping.vbs
gibt 'kurzfristig' zurück, ob ein PC erreichbar ist - auf jeden Fall
erheblich schneller als ein 'normaler' PING-Aufruf! Die enthaltene Prozedur gibt
'True' oder 'False' zurück. Damit erklärt sich der Aufruf von selbst:
If WMIpingOK( ZielPC ) Then
QuellCode>
pclistetesten.hta
erwartet eine pclistetesten.ini, in der eine Liste von IP-Adr. hinterlegt ist,
die (ständig) durch die Prozedur WMIpingOK auf Erreichbarkeit geprüft
werden sollen. Dies ist eine Antwort (von mir) zu einer Frage auf
administrator.de -
dort sind auch ein paar (bessere) Alternativen zu finden . . .
QuellCode>
popup-meldung.vbs
ich brauche immer mal wieder ein aufrufbares PopUp . . .
hier ist ein entsprechendes VBS mit 10s.
QuellCode>
PopsUp.vbs
Function PopsUp( Txt, Dauer )
ist das 'wsentliche' und erstellt ein (Tochter-) Skript, das
es mit WSHShell.Exec (statt mit WSHShell.Run) aufruft. Dadurch kann
das (Mutter-) Skript während der Meldung weiter laufen. Mit WSHShell.Exec
(statt mit WSHShell.Run) gestartete Programme lassen sich (beim wiederholten
Aufruf der 'Function PopsUp') gezielt mit der .Close-Eigenschaft 'killen'.
Funktioniert mit Leerzeichen im Dateinamen des startenden Skripts.
Die Prozedur ist ohne Anpassung in HTA und VBS verwendbar.
QuellCode>
ProgrammAuswahl.vbs
wechselt zwischen 2 Programmen, von denen immer eines gestartet sein soll.
Programmauswahl bei Doppelklick
auf eine Datei bei
http://heise.de/ct.
QuellCode>
ProgrammSchliessen.vbs
demonstriert die Verwendung der AppActivate- und der SendKeys-Methode.
Bei vielen Programmen greift die AppActivate-Methode, wenn die ersten Zeichen
mit denen in der Programmleiste angezeigten übereinstimmt. Gibt es mehrere
laufende Programme, die z.B. mit "explorer" (in der Programmleiste) beginnen,
ist wohl die Taskreihenfolge entscheidend. Groß- / Kleinschreibung wird
von der AppActivate-Methode ignoriert. Wenn die Anwendung von der
AppActivate-Methode nicht gefunden wird, wird auch kein [Alt-F4] (an die
aktuell aktive Anwendung) gesendet.
QuellCode>
ProgrammMinimieren.vbs
per SendKeys-Methode . . .
QuellCode>
progrs-nacheinander-starten.vbs
(Percent Processor Time)
QuellCode>
progrs-nacheinander-starten2.vbs
(Handle Count)
QuellCode>
progr-cpu-last-test.vbs
Soll ein weiteres Programm gestartet werden, sobald ein (anderes, vorher gestartetes)
Programm vollständig geladen ist, reichen zur Steuerung WSH- bzw. VBS-Bordmittel nicht aus.
Zur Kontrolle des Ladeverhaltens eines Programms eignet sich
progr-cpu-last-test.vbs.
Die dabei entstehende "progr-cpu-last-test.log"-Datei lässt Schlüsse darüber
zu, wie lange ein spezielles Programm zum vollständigen Laden benötigt.
Für gewöhnlich wird man die Auslastung der CPU als Kriterium für
das Starten eines Programms verwenden.
Möglicherweise lassen sich aber die Informationen "Handle Count" sicherer verwenden -
manche Programme verringern diese Anzahl (etwas), wenn der Start abgeschlossen ist.
QuellCode>
prozedurintxt.vbs
Function ProzedurInTxt( ProzName )
übergibt (aus dem aktuellen VBS) den Inhalt einer Prozedur,
um einfach aus Skripten heraus neue Skripte mit Sub- oder
Function-Prozeduren zu erstellen - die dabie erforderlichen 'spielereien' mit
den Anführungszeichen übernimmt dabei das Skript.
QuellCode>
ramnutzung.vbs
Function SpeicherNutzung( PC )
zeigt die aktuelle Arbeitsspeicher-Nutzung für denīRAM (realer Arbeitsspeicher) und
den virtueller Arbeitsspeicher (inkl. Summe der Auslagerungsdatei(en)-Größe)
QuellCode>
RegKey
"This script demonstrates how to create and delete registry keys" von der MS-Site.
QuellCode>
wmi-regkeywrite.vbs
zeigt das Lesen und Schreiben (einfacher) Registry-Werte.
QuellCode>
remotewinversion.vbs
Function WMIWinVer( PC )
ist Bestandteil der Datei WinTuC_vbs.vbs des Projekts WinTuC.de
und gibt neben der Windows-Version das Installationsdatum (für WinTuC formartiert) zurück.
QuellCode>
remotesysdriveshare.vbs
Function RemoteSysDriveShare( PCName )
ist Bestandteil der Datei WinTuC_vbs.vbs des Projekts WinTuC.de
und prüft, nach dem das Systemlaufwerk ermittelt wurde (häufig 'C:'), ob die entsprechende
administrative Freigabe (häufig '\\PCName\c$') erreichbar ist.
Diese Prozedur ist so etwas wie die Steigerungsform von
Function RemoteSystemDrive( PCName )
(nicht enthalten).
Normalerweise sollte man vor dem Aufruf dieser Prozedur die Erreichbarkeit
des PCs z.B. mit der Prozedur
If WMIpingOK( ZielPC ) Then
(nicht enthalten) prüfen.
QuellCode>
remotesystemdrive.vbs
Function RemoteSystemDrive( PCName )
ist Bestandteil der Datei WinTuC_vbs.vbs des Projekts WinTuC.de
und gibt das Systemlaufwerk zurück - häufig 'C:', so wie auch in der
Umgebungsvariable %systemdrive% verfügbar
QuellCode>
remotewindir.vbs
Function RemoteWinDir( PCName )
ist Bestandteil der Datei WinTuC_vbs.vbs des Projekts WinTuC.de
und gibt das Windows-Verzeichnis zurück - häufig 'C:\Windows', so wie auch in der
Umgebungsvariable %windir% bzw. %systemroot% verfügbar
QuellCode>
remotesysrootshare.vbs
Function RemoteSysRootShare( PC, )
ermittelt von dem entfernten System das Systemverzeichnis (%systemroot% bzw. %WinDir%; häufig
C:\Windows) und prüft, ob dieses remote erreichbar ist ('\\[PCName]\C$\Windows').
QuellCode>
remoteccmshare.vbs
Function SMSCacheLocation( PC )
gibt den Pfad zum Cache zurück, der lokal vom 'SMS Advanced Client' verwendet wird.
Function RemoteCCMShare( PC, CacheLocation )
ermittelt aus der 'CacheLocation' (Standard bei einem PC mit 'SMS Adv. Cl.' ist
'C:\Windows\System32\CCM\Cache\') den remote ansprechbaren Pfad
('\\[PC]\C$\Windows\System32\CCM\Cache\') und berücksichtigt dabei, ob es sich um ein x64-Windows
handelt ('\\[PC]\C$\Windows\SysWOW64\CCM\Cache\').
QuellCode>
scriptenv.vbs
Vorsicht! Ich musste mein PC neu installieren . . .
"Gets versions of OS, WSH, WMI & ADSI on local machine and determines which are up-to-date."
QuellCode>
scriptinfo.vbs
von Hansi Rau. Mit diesem Skript werden die VBS-Dateien eines Verzeichnisses und
dessen Unterverzeichnisses in eine HTML-Datei gelistet, wobei die ersten Kommentarzeilen
der Skripte als Info mit eingefügt werden. Läßt man das Skript auf meine Site los,
sieht das so aus:
scriptinfo.html
QuellCode>
searchallmp3s.vbs
hat Michael Wende
erstellt, um alle Festplattenlaufwerke nach .mp3- und .wma-Dateien zu durchsuchen
und das Ergebnis in eine Datei "Alle MP3s vom " & Date & ".txt"
(also mit aktuellem Datum) im Skript-Ordner zu speichern.
QuellCode>
searchmp3text.vbs
sucht einen beliebigen Songtitel, Teil eines Songtitels oder Interpreten
in der Datei "Alle MP3s vom " & Date & ".txt" und zeigt die gefundenen Resultate
an. Falls der gewünschte Songtitel (Interpret) unter den gefundenen ist,
kann man ihn mit dem Player seiner Wahl abspielen.
QuellCode>
sendenan-sicherung.vbs
Das kennt jeder: Eine Datei wird mit Daten gefüllt und man will vor der Formatierung noch schnell eine
(Daten-) Sicherung machen. Aus dem 'Schnell' wird nichts, da man sich durchaus ein paar
Gedanken über Datensicherungen machen sollte:
- Wohin die Datei kopieren? Ich will sie ja evtl. wieder finden.
- Dateinamen belassen? Vielleicht will ich ja mehrere Sicherungen machen.
- Ein Sicherungsverzeichnis? Wie soll dann die zweite TEST.CMD heißen?.
Diese und andere Gründe haben mich dieses Skript schreiben lassen. Es nimmt über
das Kontextmenü ('SendTo'- Verzeichnis) einen oder mehrere Dateinamen entgegen und speichert den
kompletten Pfad dieser Datei (die BackSlash's - also die "\" - werden
durch ³ ersetzt) und nummeriert diese fortlaufend.
Als Zielverzeichnis sollte man ein (Netzlaufwerk-) Verzeichnis wählen, das
professionell gesichert wird.
Am schnellsten macht man eine Zwischensicherung über
[Datei][Speichern unter]. In der sich öffnenden Dateiauswahl klickt man
mit der rechten Maus-Taste auf die gerade geöffnete Datei -
das Kontextmenü wartet dort schon!
Zum Kennenlernen des Skripts: Einfach ausführen! Als Hilfe wird eine
Parameterdatei
erzeugt und mit Erklärungen angezeigt.
Für verschiedene Dateiendungen lassen sich andere VOR-Zeichenketten und
NACH-Zeichenketten 'um' die Zeilennummer herum definieren. Werden zwei
Dateien übergeben, wird ein Datei-Vergleich angeboten, wobei das Skript die
Zeilennummern vorher auf alles Neunen (z.B. 999) setzt.
Skript remote starten ist im Bereich
WSH und WMI erklärt.
QuellCode>
wmi-servicestarten.vbs
enthält folgende Prozeduren:
Function ServiceStatus( Dienst )
Function ServiceStarten( Dienst )
Function ServiceStoppen( Dienst )
Function ServiceAuto( Dienst ) mit starten des Dienstes
Function ServiceManual( Dienst ) mit stoppen des Dienstes
Function ServiceDeaktivieren( Dienst ) mit stoppen des Dienstes
QuellCode>
skript-neustarten.vbs
Laufen auf einem Computer mehrere Skripte gleichzeitig und ununterbrochen
(in Endlosschleifen), ist es schwierig, über den Taskmanager ein bestimmtes Skript zu
beenden. Ist man gerade dabei, ein Skript mit Endlosschleife zu programmieren, ist
es wünschenswert, dass sich das Skript bei Änderungen am Code 'selbst' neu startet.
Skripte werden beim Aufruf komplett geladen - Änderungen oder
das Umbenennen (oder Löschen) beeinflussen die Skriptabarbeitung 'eigentlich' nicht.
Genau diesen Umstand verwenden die folgenden beiden Prozeduren, in dem sie prüfen,
ob sich der Skript-Code geändert hat oder das Skript umbenannt (oder gelöscht) wurde.
Die Prozeduren brauchen bei jedem (Endlos-) Schleifen-Durchlauf nur aufgerufen werden:
Sub VBSbeenden()
prüft, ob es sich selbst (WScript.ScriptFullName) noch gibt - wurde das Skript
umbenannt (oder gelöscht), beendet es sich selbst.
Sub VBSneustart()
prüft, ob sich das eigene Dateidatum (.DateLastModified)
geändert hat. Dafür muss beim Skript-Start außerhalb der Prozedur eine Variable
deklariert ('bekannt gemacht') werden. Beim ersten Aufruf der Prozedur erhält
die (leere) Variable das aktuelle Dateidatum, das dann für die nächsten
Prozeduraufrufe zum Vergleich zur Verfügung steht (weil die Variable außerhalb der Prozedur
deklariert wurde).
QuellCode>
SHELL32DLLversion.vbs
zeigt - wie der Name schon sagt - die Datei-Version
der Shell32.dll an, die z.B. in
Verlaufs- bzw. Fortschrittsanzeige beim Kopieren,
verwendet wird.
QuellCode>
shellapplicationnamespace.vbs
Function ShellApplicationNamespace( )
ermittel alle verfügbaren 'Umgebungsparameter' - u.a.:
Internet Explorer, Programme-Verzeichnis, Systemsteuerung (-Verzeichnis),
'Drucker und Faxgeräte' (-Verzeichnis), 'Eigene Dateien'-Verzeichnis,
Favoriten-Verzeichnis, 'Zuletzt verwendete Dokumente'-Verzeichnis,
Papierkorb (-Verzeichnis), Anwendungsdaten-Verzeichnis, Druckumgebung-Verzeichnis,
'Temporary Internet Files'-Verzeichnis, Cookies-Verzeichnis,
Verlauf-Verzeichnis, 'Eigene Bilder'-Verzeichnis,
Verwaltung-Verzeichnis, 'Gemeinsame Musik'-Verzeichnis . . .
Infos>
sudoku.exe v7.4
sudoku.ex v7.4
löst Sudoku-Zahlenrätsel, bei denen in 9x9 Feldern in jeder Zeile,
Spalte und jedem der 9 Teilquadrate die Zahlen von 1 bis 9 nur
einmal auftauchen dürfen. Diese Rätsel sind seit kurzem der große
Renner und sollen sogar süchtig machen! Zumindest
W. Schmelz
ist süchtig danach, das ganze mit VBS zu lösen . . .
Die sudoku.exe v7.4
herunterladen und starten. In dem Zielverzeichnis befindet sich nach
dem Entpacken eine "[Zielverzeichnis]\Sudoku74\Setup.vbs". Durch deren Start
'landet' alles in "C:\Spiele\" - das Sudoku-Desktop-Symbol verweist
auf "C:\Spiele\Sudoku\Desktop", in dem das "Sudoku-Feld.hta" zu staren ist.
Danach: Viel Spass!
QuellCode>
Sort-BubbleSort.vbs
QuellCode>
Sort-HeapSort.vbs
QuellCode>
Sort-QuickSort.vbs
sortieren die Zeilen einer Datei alphabetisch. Mein Beitrag zu diesen Skripten ist
die Berücksichtigung bzw. Nichtberücksichtigung von Groß- und
Kleinschreibung: Normalerweise werden alle! Zeilen, die mit einem Kleinbuchstaben
beginnen, hinter den Zeilen mit Großbuchstaben am Zeilenanfang sortiert.
Einfach eine Datei auf das Skript fallen lassen. Im Skript werden alle Zeilen
einer (ASCII-) Datei in ein Array gelesen, bevor das Sortieren in einer Function
(ohne Festplattenzugriff) abläuft. Anschließend wird das sortierte Array
in eine Datei geschrieben und angezeigt. Bei großen Dateien ist so ein Skript
einige Zeit beschäftigt:
Function bubblesort( arrTest )
benötigt für 10.000 Zeilen VBScript-Code (393KByte) knapp 7min
mit 100% CPU-Auslastung.
Function HeapSort( ByRef A )
schafft in ca. 50s und
Function QuickSort( vntArray, intVon, intBis )
schafft in ca. 30s
100.000 Zeilen VBScript-Code (3,83MByte) mit 100% CPU-Auslastung -
das Speichern des sortierten 100.000-Zeilen-Arrays dauert dann allerdings fast 3min.
Diese Messwerte stammen von einem PIII 600MHz-System; auf einem
"mobile AMD AthlonXP 1900+ (1.6GHz)" sind 100.000 Zeilen einer 4,4MByte-Datei
von QuickSort in 17s komplett (mit speichern) erledigt.
QuellCode>
sound-text-ausgabe.vbs
Enthält zwei Prozeduren:
Sub PlayWaveVbs( WaveDatei ) zum Abspielen einer Wave-Datei ohne Player
Sub TextSprechenVbs( Txt ) zum 'Sprechen' eines Textes
QuellCode>
specialfolders.vbs
CreateObject("WScript.Shell").SpecialFolders( i )
testet und zeigt an, welche Verzeichnisse sich mit dieser WSH-eigenen Prozedur
ermitteln lassen - nicht alle sind bei MS dokumentiert:
0: C:\Dokumente und Einstellungen\All Users\Desktop
1: C:\Dokumente und Einstellungen\All Users\Startmenü
2: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme
3: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart
4: C:\Dokumente und Einstellungen\[%UserName%]\Desktop
5: C:\Dokumente und Einstellungen\[%UserName%]\Anwendungsdaten
6: C:\Dokumente und Einstellungen\[%UserName%]\Druckumgebung
7: C:\Dokumente und Einstellungen\[%UserName%]\Vorlagen
8: C:\WINDOWS\Fonts
9: C:\Dokumente und Einstellungen\[%UserName%]\Netzwerkumgebung
10: C:\Dokumente und Einstellungen\[%UserName%]\Desktop
11: C:\Dokumente und Einstellungen\[%UserName%]\Startmenü
12: C:\Dokumente und Einstellungen\[%UserName%]\SendTo
13: C:\Dokumente und Einstellungen\[%UserName%]\Recent
14: C:\Dokumente und Einstellungen\[%UserName%]\Startmenü\Programme\Autostart
15: C:\Dokumente und Einstellungen\[%UserName%]\Favoriten
16: C:\Dokumente und Einstellungen\[%UserName%]\Eigene Dateien
17: C:\Dokumente und Einstellungen\DuDarfst\Startmenü\Programme
Es gibt eine weitere WSH-eigenen Prozedur (GetSpecialFolder statt SpecialFolders):
CreateObject("WScript.Shell").GetSpecialFolder( i )
0: C:\Windows
1: C:\Windows\System32
2: C:\Users\[%UserName%]\AppData\Local\Temp
QuellCode>
spielchen.hta
Dieses Spielchen kennt wohl jeder . . . nur ich nicht.
QuellCode>
split-test.vbs
Wenn das Trennzeichen für die Split-Funktion das Komma
ist, in der zu zerlegenden Zeichenkette aber Dezimalzahlen
(also auch mit Komma, aber mit Anführungszeichen eingegrenzt)
enthalten sind, kann man es wie hier gezeigt machen.
QuellCode>
Standarddrucker.vbs
zeigt den Standarddrucker.
QuellCode>
wmi-standarddrucker.vbs
Function AlleDrucker( PC )
Function Standarddrucker( PC )
standarddrucker.hta
holt die Auswahl eines Druckers als Standarddrucker auf den
Desktop. Mit Hilfe und Installations- und Deinstallationsroutine.
Besonders interressant: Das Icon für die Desktopverknüpfung ist
im HTA hinterlegt. Und das alles ist von
cmdr.
QuellCode>
stoppuhr.vbs
von W. Schmelz -
der Name ist Programm.
QuellCode>
StringAnPositionInDateiTauschen.vbs
ersetzt an einer bestimmten Position in jeder Zeile einer Datei Zeichen oder löscht
diese (also Spaltenweise). Es können alle Zeichen bis zu einer bestimmten Position,
ab einer bestimmten Position oder zwischen zwei Positionen ausgetauscht bzw. gelöscht
werden. Man kann so in einer Protokolldatei z.B. Tabulatoren einfügen, um sie dann
in Excel öffnen zu können.
QuellCode>
StringInDateiTauschen.vbs
arbeitet ähnlich wie ZeileInDateiTauschen.vbs, ändert aber nur einzelne
Zeichen, nicht die ganze Zeile.
QuellCode>
stringindatei-1.vbs
von W. Schmelz:
Beliebige Datei auf dieses Programm ziehen und loslassen. Ein zu suchendes Wort
eingeben: Groß- und Kleinschreibung (KeySensitiv) ist wichtig!
Die Zeilen mit dem gesuchten Wort werden dann mit der Nummerierung angezeigt.
QuellCode>
StringInDatei.vbs
sucht in einer Datei nach einer Zeichenkette und speichert jede Zeile, die
diese Zeichenkette enthält, mit Zeilennummer in eine andere Datei.
Infos>
stundenschlag.exe
(entpackt sich in einen Ordner)
von W. Schmelz:
Zum fehlerfreien Lauf muss sich "StundenSchlag.vbs" im gleichen
Ordner wie "Uhr.wmf" und "Schlag.wav" befinden. Beim ersten Start werden alle drei Dateien nach
"C:\Programme\Schmelz.W\Stundenschlag" kopiert und eine Verknüpfungen auf dem Desktop
und eine Startdatei im Autostart abgelegt.
Mitgeliefert werden 3 Töne. "Schlag1.wav" ist ein leichtes "Ping",
"Schlag2.wav" ist ein kräftiges "Pink", "Schlag3.wav" ist eine kräftige
Glocke. Einfach den gewünschten Ton in "Schlag.wav" (die Zahl weglassen) umbenennen.
QuellCode>
suchmaschine.vbs
von W. Schmelz
sucht in
grdprobl.txt
nach Code-Schnipseln -
W. Schmelz
hat in dieser Datei die Lösungen zu 'seinen' Grundproblemen gesammelt.
QuellCode>
vbstxtdocsuchmaschine.vbs
ist die 'Steigerungsform' - im aktuellen Ordner können z.B. alle .VBS-Dateien
nach passenden Code-Schnipseln durchsucht werden.
QuellCode>
suizid.hta
Sub Suicide
löscht die HTA, in der sich diese Prozedur befindet, ohne dafür extra eine
Hilfsdatei (VBS oder CMD) zu schreiben - auch von
cmdr.
QuellCode>
icon.vbs
In einem Hta kann ein Symbol (Icon) definiert werden, das dann - wie
bei jeder Win-Anwendung - links im Rahmen der Anwendung und
in der Taskleiste für die Anwendung angezeigt wird.
Damit man das Symbol nicht als sepearate Datei mitgeben zu müssen,
kann man es im Hta 'verstecken' - und das geht wie folgt:
Man öffnet die Ico-Datei mit PSPad, das die Datei im HEX-
Format anzeigt. Mit [Strg-a][Strg-c] befindet sich die
gesamte Datei im HEX-Format in der Zwischenablage. Diese
Zeichenkette wird hier im Beispiel der Variable Tst
zugewiesen werden. Die Prozedur
Sub IcoAusHexDaten( ZielDatei, HexDaten )
wandelt diese Zeichenkette und erstellt eine Ico-Datei.
Allerdings wird aus einer 4KByte Ico-Datei wird eine 8KByte Zeichenkette.
SWinventar.vbs
ist eins der Skripte aus dem
WSH-Inventar-Projekt
und liest aus der Registry die Liste der installierten Software aus.
Es wird also nur die Software gelistet, zu der eine Uninstall-Routine
registriert ist.
QuellCode>
syntax-ipadr.vbs
Function GueltigeIPAdr( IP )
prüft mittels 'Regular Expression' (regulärer Ausdruck) die Gültigkeit
(der Zahlenfolge) einer IP-Adresse. (Nach
~~~Dexter~~~)
QuellCode>
syntax-pcname.vbs
Function GueltigerPCName( Hostname )
von ~~~Dexter~~~
prüft mittels 'Regular Expression' (regulärer Ausdruck) die Gültigkeit
(der Zeichenkette) eines PCNamen, der bekanntlich max. 15
Zeichen lang und keine Sonderzeichen enthalten darf.
QuellCode>
terminemelden.vbs
Dieser "Wecker"
von W. Schmelz
verwendet keine Objekte und läuft deshalb in allen Win-Versionen, ist aber
'von Hand' auf den Desktop zu kopieren. Beim Start bleibt die
"Suchschleife" bis zur Abschaltung des PC´s auf Lauer, ob Datum und Zeit
für eine Meldung eingetreten sind. Das Melde-Protokoll wird nach einer
Meldung gelöscht. Wegen ausgeschaltetem PC verpasste Meldungen werden beim
Start dann natürlich verspätet angezeigt. Datum, Zeit und Meldungstext
lassen sich ändern - oder löschen! Im H-t-a sind bis zu sechs
Meldungen eintragbar; für weitere das Programm einfach erneut aufrufen.
Keinerlei Gewähr für das korrekte Laufen des Programmes, d.h. keine
Haftung für verpasste Termine!
QuellCode>
TimeSet.vbs
ruft eine Atomuhr - http-Seite auf um dann die Systemzeit zu setzen, wenn diese
max. 10min abweicht. (Ist bei Win2k bereits implementiert.) Lässt sich unter
WinNT (automatisch z.B. täglich) als Dienst starten und schreibt ein Protokoll.
QuellCode>
ToANSI.vbs
Function ToANSI( ASCIIz )
wandelt die deutschen ASCII-Zeichen in ANSI-Zeichen.
Werden die Ausgaben einer Eingabeaufforderung (DOS-Box, CMD-Box)
an ein Skript übergeben, müssen die darin enthaltenen ASCII-Zeichen
(ä, Ä, ö, Ö, ü, Ü und ß) in ANSI-Zeichen
umgewandelt werden, die im gesamten Windows-GUI-Umfeld
benutzt werden.
QuellCode>
ToANSI2.vbs
Function Asc2Ans( Txt, As2An )
von
Jög Zühlke kann beides: ASCII in ANSI und ANSI in ASCII wandeln.
QuellCode>
temp-hilfe.vbs
Da im Kopf eines Skripts häufig Erklärungen zur Funktion
des Skripts hinterlegt sind, kann mit den Prozeduren
Sub TempHilfeTxt( VBSDatei )
Sub TempHilfeHta( VBSDatei )
eine Hilfe in ein beliebiges Skript integriert werden -
angezeigt als TXT-Datei (in Notepad) oder als HTA-Datei (mit mshta.exe).
Die Prozeduren erstellen eine temporäre Datei, in die der Kopf
des Skripts eingefügt wird. Beginnen und enden
muss dazu der Textbereich mit:
'*** (ein Hochkomma, gefolgt von 3 Sternchen)
oder
' *** (ein Hochkomma, ein Leerschritt, 3 Sterne)
Die TMP-Datei wird im %Temp%-Ordner des angemeldeten Users angelegt und nach dem Anzeigen gelöscht.
Sub HilfeTxtDatei( ZielDatei )
Diese Prozedur schreibt den Kopf eines Skripts in eine Textdatei - z.B. "LiesMich.txt".
QuellCode>
text-in-80-zeichen-je-zeile.vbs
von Michael Wende.
Übernimmt man markierten Text aus dem Internet-Browser z.B. in Notepad,
stören oft die fehlenden Zeilenümbrüche (Zeilen mit mehr als 100 Zeichen).
Um die Darstellung auf max. 80 Zeichen pro Zeile zu begrenzen, entstand
dieses Skript: es liest eine Datei ein und speichert diese mit max. 80 Zeichen
pro Zeile.
QuellCode>
TXTQuerDruck.vbs
kopiert Datei(en) zum Drucker, die dann im Querformat gedruckt werden. Die Druckerauswahl
ist 'ausge-REM-t' - es wird immer nach LPT1: gedruckt. Jedes Zeichen der Datei(en)
kommt beim Drucker an. Man sollte also nur ASCII-Dateien (z.B. Quelltexte;
keine Word-Dokumente!) verwenden, sonst werden
!!! HUNDERTE !!! Seiten mit Schwachsinn bedruckt.
QuellCode>
TXTzumDrucker.vbs
kopiert Datei(en) zum Drucker. Nach der Druckerauswahl wird jedes!!! Zeichen der Datei(en)
zum Drucker geschickt. Man sollte also nur PRN- oder ASCII-Dateien (z.B. Quelltexte;
keine Word-Dokumente!) verwenden.
PRN-Dateien erstellen: Auf dem PC ist zum Standarddrucker ein weiterer, gleicher
Drucker zu installieren, der aber in eine Datei (FILE:) statt auf LPT1: druckt.
Wird jetzt ein Druckvorgang ausgelöst, erfolgt eine Abfrage, unter welchem Dateinamen
der Druckauftrag abgespeichert werden soll. Diese Datei enthält dann das Image der
Daten, die über die parallele Schnittstelle gehen würden. Ob das bei einem
GDI-Drucker (WinPrinter) auch geht, konnte ich nicht testen.
Einige Scanner können, zusammen mit einem am PC angeschlossenen Drucker, als Kopierer
genutzt werden. Auch diese Kopierer-Funktion des Scanners erstellt dann PRN-Dateien.
Kopiert man TXTzumDrucker.vbs
in das 'SendTo'-
Verzeichnis, können markierte Dateien über 'Senden an' ausgedruckt werden. -
Ich habe das mal verwendet, um die zahlreichen Kopien für meine Bewerbungen mit
einem Laserdrucker zu drucken.
QuellCode>
TXTzuLPT1.vbs
kopiert eine Datei nach LPT1:.
QuellCode>
usbporttest.vbs
gibt 'BESCHEID!', wenn sich an einem der USB-ports 'etwas' bewegt.
QuellCode>
usertempverz.vbs
Function UserTempVerz()
ist Bestandteil der Datei WinTuC_vbs.vbs des Projekts WinTuC.de
und ermittel das temporäre Verzeichnis des aktuell lokal angemeldeten
Users. Dieses Verzeichnis öffnet Windows, wenn über [Start] [Ausführen]
'%temp%' oder '%tpm%' eingegeben wird. Unter einem System-Account, z.B. durch
einen Dienst (Service) aufgerufen, ergibt der Prozeduraufruf
'%windir%\temp' bzw. '%systemroot%\temp' also häufig 'C:\Windows\Temp'.
QuellCode>
wmi-vbsalsservice.vbs
Das Skript zeigt, wie sich ein VBScript als Dienst eintragen
lässt, der vor der Benutzeranmeldung gestartet wird.
Richtige Dienste bzw. Services melden an den Dienstmanager
"etwas" zurück. Einfache Skripte können dies nicht. Aus diesem
Grund wird ein Skript gestartet, das ein anderes startet - der
Dienstmanager beendet Dienste, die keine Meldungen
an ihn zurück geben.
Dieses Startskript "C:\test\VBSstart.vbs" besteht aus nur einer Zeile:
CreateObject("Wscript.Shell").Run "C:\test\richtiges.vbs"
Am Ende des Skripts "wmi-VBSalsService.vbs" wird der Dienst
auch gleich wieder entfernt.
QuellCode>
vbseditor+.vbs
von W. Schmelz:
Editoren gibt es viele! Mich reizte es aber, einen mit Mitteln des Hta zu schreiben!
Im Explorer ist eine beliebige Datei wählbar. Ermöglicht wird dieses für "Txt", "Vbs", "Hta".
Es wird hier mit eingebundenen Hta gearbeitet, welches die Zeilen der geladenen Datei anzeigt.
Oder eine Datei auf dieses Vbs ziehen und fallen lassen Die Datei wird in nummerierten Zeilen
abschnittweise angezeigt. Dabei ist außer "Abbruch" auch ein "Zurück" und natürlich "Weiter" möglich,
sowohl für die angezeigten Zeilen als auch für die darin in einem Textfeld bearbeitbar angezeigte
Zeile. Diese kann man abändern und die Änderung in der betreffenden " Datei " speichern.
Ferner können eine beliebige oder eine neue, noch völlig leere Datei über den Explorer aufgerufen werden.
Es können die Objekte Fso, Wss oder der Inhalt der Zwischenablage eingefügt und auf Wunsch widerrufen werden!
Es kann auch ein bestimmtes "Wort" gesucht werden.
QuellCode>
vbsbeimsystemstart.vbs
Das Skript erwartet beim Aufruf zwei Parameter: einen PC (-Namen) auf dem der
Dienst "1Service" erstellt werden soll und ein Programm (-Name; z.B. 'mein.vbs'
oder 'deine.cmd'), das beim Systemstart gestartet werden soll.
Ist der entfernte PC erreichbar und sind die erforderlichen
Rechte vorhanden, werden auf diesem
- der Dienst "1Service" erstellt
- das Skript 'VBSDienst1' geschrieben
- das Skript 'VBSDienst' geschrieben
- das Programm (in Variable 'VBSStart') dorthin kopiert
- vorhandene Programmname.* - Datei(en) werden kopiert
(Fehlt 'VBSStart' wird als Demo eine VBS-Datei erstellt,
die sich beim Dienststart meldet.)
Der Dienst "1Service" startet das Skript 'VBSDienst1' auf dem entfernten PC
(sofort und dann) bei jedem Systemstart vor einer Benutzeranmeldung -
'VBSDienst1' ruft 'VBSDienst' auf. Dieses prüft, ob der Dienst "1Service"
entfernt oder ob das Programm 'VBSStart' aufgerufen werden
soll - diese Steuerung ist in 'VBSDienst' implementiert
und vom Vorhandensein verschiedener Dateien abhängig:
- es existiert 'VBSStart' mit der Dateiendung (eXtension)
".no" (z.B. statt ".vbs"): 'VBSStart' wird nicht
gestartet; der "1Service" bleibt erhalten.
- es existiert 'VBSStart' mit der Dateiendung ".boot":
statt 'VBSStart' wird der PC nach 3min neu gestartet;
der "1Service" bleibt erhalten.
- es existiert 'VBSStart' mit der Dateiendung ".end" oder
- es fehlt das Skript 'VBSStart':
Der Dienst "1Service" wird gelöscht bzw. entfernt.
Z.B. wenn 'VBSStart' seine Aufgaben erfüllt hat, löscht
es sich selbst und beim nächsten Systemstart wird der
Dienst "1Service" von 'VBSDienst' entfernt.
Oder wenn 'VBSStart' seine Aufgaben erfüllt hat,
schreibt 'VBSStart' eine dieser Dateien; beim nächsten
Systemstart . . .
Da das Skript 'VBSDienst1' kein richtiger Dienst sein kann, wird es vom
Dienstmanager nach 30s beendet - mit einem Fehlereintrag in der
Ereignisanzeige.
Dieses Skript ist eine Erweiterung bzw. Ablösung von wmi-vbsalsservice.vbs ab:
QuellCode>
wmi-VBSalsService.vbs
"Skript als Dienst" oder "VBScript als Service" -
Das Skript zeigt, wie sich ein VBScript als Dienst eintragen
lässt, der vor der Benutzeranmeldung gestartet wird.
Im Dienstnamen darf kein Leerzeichen (Space) enthalten sein!
Richtige Dienste bzw. Services melden an den Dienstmanager
"etwas" zurück. Einfache Skripte können dies nicht und erzeugen
Einträge in der Ereignisanzeige. Aus diesem
Grund wird ein Skript gestartet, das ein anderes startet. Der
Dienstmanager beendet nämlich Dienste, die keine Meldungen
an ihn zurück geben.
Dieses Startskript "C:\test\VBSstart.vbs" besteht aus nur einer
Zeile:
CreateObject("Wscript.Shell").Run "C:\test\richtiges.vbs"
Am Ende des Skripts
wmi-VBSalsService.vbs
wird der Dienst auch gleich wieder entfernt.
QuellCode>
1service_serviceentfernen.vbs
QuellCode>
VerzeichnisAltDelete
löscht alle alten Verzeichnisse in einem Verzeichnis (C:\Temp), die vor 100
Tagen oder mehr angelegt wurden (siehe auch DateienAltDelete.vbs).
QuellCode>
Verz-Suchen-Loeschen.vbs
ist das Ergebnis einer Newsgroup-Anfrage: Auf einem Server müssen die 'Temporary Internet Files' in allen ...\user\...
Verzeichnissen komplett gelöscht werden. (Um das nicht gleich hart in einer Produktionsumgebung testen zu
müssen, habe ich noch ein Skript geschrieben, dass diese Verzeichnisstruktur zum Test mal eben auf C:\ erstellt.)
QuellCode>
wait.vbs
Liegt das Skript in einem über PATH erreichbaren Verzeichnis
(z.B. c:\windows\system32\) kann man es in einer
.bat bzw. .cmd-Datei aufrufen:
wait.vbs 10
lässt die Abarbeitung (etwa) 10 Sekunden ruhen.
Wird das Skript ohne Parameter gestartet, pausiert es für 0,1 Sekunden
(wobei der Aufruf durchaus länger dauern kann).
Werden mehr als ein Parameter übergeben, wird versucht,
diese nach Ablauf der Zeit per WSHShell.Run zu starten.
"wait.vbs 9 taskmgr.exe" startet nach 9s den Taskmanager.
QuellCode>
wav-to-mp3.vbs
habe ich für eine spezielle Aufgabe gebraucht: Zeit gesteuert hat mein PC nachts
4h Musik vom Radio aufgenommen und in WAV-Dateien gespeichert. An Hand der Playlist habe
ich die Titel (Titel-Name = Datei-Name) je Interpret (Interpret-Name = Verzeichnis-Name)
abgespeichert. wav-to-mp3.vbs hat nun die WAV- in
mp3-Dateien umgewandelt und die mp3-Tag's für Interpret und Titel automatisch gesetzt.
Wenn alle Titel umgewandelt sind, wird jeder Titel zu Hörprobe angespielt. Nach dem
Schließen des mp3-Player kommt die Frage, ob die WAV-Datei gelöscht werden kann.
QuellCode>
WinNT-OR-Win9X.vbs
testet ab WinNT/2k oder Win9x/ME das aktuelle Betriebssystem ist und ruft dementsprechend
ein anderes .VBS auf.
QuellCode>
WinVerSP.vbs
zeigt die WinNT/2k-Version und ggf. installierte Servicepacks an. Setzt
Regobj.dll voraus, um die Registry auszulesen -
fragt, welcher PC getestet werden soll.
QuellCode>
wmi-winver.vbs
das Ganze per WMI.
QuellCode>
wmi-winversp.vbs
Function ListSystemInformation( PC )
ermittelt einigen Infos zum PC per WMI.
QuellCode>
winversp-regread.vbs
das Ganze mit 'normalen' RegRead.
QuellCode>
WSH-Info.vbs
zeigt, was man über das installierte WSH und das aktuelle Skript herausfinden kann.
WSHBackup.zip
ist ein Backup-Skript von Marcus Müller auf der Site von
www.logiclink.de
mit einer ausführlichen
Erklärung.
zahlentheorie.exe
anthält einige Skripte zur Zahlentherie von
W. Schmelz -
der jeweilige Dateiname beschreibt, wozu das Progrämmchen gut ist:
Euler.vbs
GeradSumme.vbs
LogNat.vbs
PrimZahlDrilling.vbs
PrimZahlListe.vbs
PrimZahlLuecke.vbs
PrimZahlQuadr.vbs
PrimZahlVierling.vbs
PrimzahlZahl.vbs
PrimZahlZwilling.vbs
PrimZerlegen.vbs
PrimZListeTeiler.vbs
PrimZMsgBox.vbs
Quersummensumme.vbs
UngeradSumme.vbs
ZahlenSumme.vbs
ZahlVollkommen.vbs
QuellCode>
ZeileInDateiTauschen.vbs
durchsucht eine Liste von Dateien nach einer Zeichenkette und tauscht ggf. die komplette
Zeile aus. In den Zeilen dürfen keine Anführungszeichen " stehen! Dazu stellt
'dateiliste.txt' eine Liste der zu prüfenden Dateien bereit. Beim Skriptaufruf wird
nach der zu suchenden Zeichenkette gefragt. (Am einfachsten: zu suchende Zeile in die
Zwischenablage übernehmen und als Such-String einfügen. - Ich habe damit in
meinen HTML-Dateien u.a. das Bild und das [meta name="DC.Date" ... ] - Tag
geändert.) Die Ursprungsdatei(en) werden in der letzten Zeile des Skripts gelöscht.
QuellCode>
zeilennr-anpassen.vbs
ersetzt
QuellCode>
zeilennr-msgbox.vbs.
Sub ZeilenAnpassg( Datei, Sicherg )
enthält die eigentliche Funktionalität, um sie leichter in
sendenan-sicherung.vbs
nutzen zu können.
In der Prozedur macht das Skript entsprechend dem Parameter 'Sicherg' von 'Datei' eine
Sicherungskopie, wenn die Sicherungsdatei nicht existiert (für
sendenan-sicherung.vbs
erforderlich).
In allen Zeilen der 'Datei' wird nach ' :: ' (das sind 4 Zeichen)
gesucht. Ist die Suche erfolgreich, werden zwei Fälle unterschieden -
abhängig von den Zeichen davor:
1. Die Zeichen davor enthalten ein Anführungszeichen,
gefolgt von einer max. 4stelligen Zahl und anschließend ' :: ' - z.B.:
MsgBox "123 :: Meldung"
WScript.Echo "9 :: CScript.exe oder WScript.exe?"
FileOut.WriteLine "9876 :: für LOG-Dateien"
=> Dies ist die VBS-Unterstützung in .VBS- / .HTA- / .HTML-Dateien.
2. Die Zeichen davor enthalten ein kleines 'o' (von 'Echo'),
gefolgt von einem Leerschritt, gefolgt von einer max.
4stelligen Zahl anschließend ' :: ' z.B.:
Echo 123 :: Meldung
Echo 6 :: Meldung um %date% %time% >> LogDatei.txt
=> Dies ist die Befehlszeilen-Unterstützung in .BAT- / .CMD-Dateien.
Die max. 4stellige Zahl wird
durch die aktuelle Zeilennummer ersetzt - 4stellig mit führenden Nullen.
Zum Testen das Skript ohne Parameter starten: Im Skript werden
entsprechend den Bedingungen in den Beispielzeilen die korrigierte
Zeilennummer eingetragen und das Ergebnis mit Notepad angezeigt.
Beim zweiten Aufruf dieses Skripts, werden auch die (MsgBox-) Meldungen
die richtige Zeilennummer anzeigen.
Hinweis: Bei .BAT-, .CMD-, .HTA-, HTM-, .HTML- und .VBS-Dateien wird
die (Quell-) Datei immer neu geschrieben!
↑ Zum Seitenanfang ↑