Einleitung
Die Plugins bestehen aus Skripten, die in die Standard-Ausgabe
schreiben. In welcher Syntax die Ausgabe erfolgt, ist festgelegt.
Mit diesem Wissen ausgerüstet ist es kein Problem, eine
Batch-Datei zu schreiben, die die Plugins verarbeitet.
Zweck der Übung:
Es lassen sich von Plugins gelieferte Daten ohne
das Hauptprogramm Putzi4Win löschen.
Ein solches Skript kann man regelmässig ausführen, z.B. indem man
eine Verknüpfung im Startmenü anlegt.
Seitenanfang
Ansatz
Unsere Batch-Datei muss einmal alle gewünschten Plugins
ausführen. Die Ausgabe aller Plugins erfolgt in eine
gemeinsame Datei.
:: Liste der auszuführenden Plugins zusammenstellen:
set plugins=
set plugins=%plugins% browser_firefox_cache.bat
set plugins=%plugins% browser_ie_cache.bat
set tmpfile="%temp%\plugin_out.txt"
(...)
echo # >%tmpfile%
for %%a in (%plugins%) do echo --- Plugin: %%a && call plugins\%%a >>%tmpfile%
Anschliessend wird auf alle Zeilen, die mit FILE: beginnen,
ein del- Kommando abgesetzt, die die dahinterfolgenden
Dateien zu löschen.
Analog werden Ordner, die hinter dem Eintrag DIR: stehen mit
einem rd gelöscht (jedoch nicht rekursiv, damit werden nur
tatsächlich leere Ordner gelsöcht.).
echo ===== zu loeschende Dateien:
for /F "tokens=1,* delims=:" %%a in ( 'findstr "^FILE:" %tmpfile%' ) do echo del "%%b" && del "%%b"
echo ===== zu loeschende Ordner:
for /F "tokens=1,* delims=:" %%a in ( 'findstr "^DIR:" %tmpfile%' ) do echo rd "%%b" && rd "%%b"
Seitenanfang
komplettes Beispiel
Anbei eine komplette Batchdatei.
Anzupassen sind
- der Ordner, wo sich das Programm Putzi4Win befindet
set putziDir="C:\Programme\putzi4win"
- die Liste der Plugins, die ausgeführt werden sollen
Die Zeilen
set plugins=%plugins% [Dateiname]
mit weiteren Plugins ergänzen.
Hinweis: dieses Beispiel funktioniert nur mit Batch-Dateien.
Sollen VB-Skript-Plugins ausgeführt werden, braucht es noch
Ergänzungen zum Aufruf der cskript.exe
Viel Spass beim Experimentieren!
@echo off
rem ######################################################################
::
:: DEMO-Skript zum Verarbeiten der Putzi4Win-Plugins
::
rem ----------------------------------------------------------------------
:: 2008-09-02 support@putzi4win.de
rem ######################################################################
rem ----------------------------------------------------------------------
:: CONFIG
rem ----------------------------------------------------------------------
:: Programverzeichnis von Putzi4Win:
set putziDir="C:\Programme\putzi4win"
:: Liste der auszuführenden Plugins zusammenstellen:
set plugins=
set plugins=%plugins% browser_firefox_cache.bat
set plugins=%plugins% browser_ie_cache.bat
rem ----------------------------------------------------------------------
:: INTERNE CONFIG
rem ----------------------------------------------------------------------
set tmpfile="%temp%\plugin_out.txt"
rem ----------------------------------------------------------------------
:: MAIN
rem ----------------------------------------------------------------------
::
:: In das Programmverzeichnis reinwechseln - bei Fehler abbrechen
::
cd /d %putziDir% || (
echo FEHLER: Verzeichnis von Putzi4Win nicht gefunden.
pause && exit
)
echo OK: Verzeichnis von Putzi4Win gefunden.
::
:: Plugins ausführen und in einer TEMP-Datei sammeln
::
echo ===== fuehre die Plugins aus:
echo # >%tmpfile%
for %%a in (%plugins%) do echo --- Plugin: %%a && call plugins\%%a >>%tmpfile%
::
:: TEMP-Datei parsen: Dateien und dann Ordner löschen
::
echo ===== zu loeschende Dateien:
for /F "tokens=1,* delims=:" %%a in ( 'findstr "^FILE:" %tmpfile%' ) do echo del "%%b" && del "%%b"
echo ===== zu loeschende Ordner:
for /F "tokens=1,* delims=:" %%a in ( 'findstr "^DIR:" %tmpfile%' ) do echo rd "%%b" && rd "%%b"
::
:: ENDE
::
del %tmpfile%
echo ===== Skript beendet. && pause && exit
rem ----------------------------------------------------------------------
Seitenanfang