.exe mit mehreren Dateien im Parameter mittels batch oder vbs aufrufen
doschtinator (Level 1) - Jetzt verbinden
19.09.2011, aktualisiert 21.09.2011, 5200 Aufrufe, 8 Kommentare
Verweis auf das eigentliche Problem, welches mittels Batch oder vbs Datei automatisiert werden soll: http://www.schraegstrichpunkt.de/firefox-performance-tipps-aufraeumen-u ...
Hallo,
ich wende mich mal wieder mit einer Bitte an das Forum, in dem mir bisher immer prima geholfen wurde.
Wie unter dem Link zu sehen (http://www.schraegstrichpunkt.de/firefox-performance-tipps-aufraeumen-u ...) ), möchte ich die "Entschlackung" der sqlite Dateien automatisch vornehmen lassen. Dazu habe ich schon den folgenden Befehl gestestet:
--
cd H:\Firefox
start sqlite3.exe urlclassifier3.sqlite vacuum
--
Funktioniert, jedoch befinden sich gut ein Dutzend Dateien mit der Dateiendung .sqlite in dem Ordner.
Meine Idee:
Mittels batch alle Dateien mit der Endung .sqlite auslesen und falls eine Datei gefunden wird, soll diese gleich im Parameter mit der exe aufgerufen werden. Danach weitermachen, so lange, bis alle Dateien auf ihre Endung geprüft und ggf. auch aufgerufen wurden.
Leider habe ich keinen Schimmer wie ich dies vernünftig bewerkstelligen soll. Sicherlich mangelt es mir da an Erfahrung und Können, aber ich bin über jeden Hinweis und Tipp dankbar!
Grüße
doschtinator
ich wende mich mal wieder mit einer Bitte an das Forum, in dem mir bisher immer prima geholfen wurde.
Wie unter dem Link zu sehen (http://www.schraegstrichpunkt.de/firefox-performance-tipps-aufraeumen-u ...) ), möchte ich die "Entschlackung" der sqlite Dateien automatisch vornehmen lassen. Dazu habe ich schon den folgenden Befehl gestestet:
--
cd H:\Firefox
start sqlite3.exe urlclassifier3.sqlite vacuum
--
Funktioniert, jedoch befinden sich gut ein Dutzend Dateien mit der Dateiendung .sqlite in dem Ordner.
Meine Idee:
Mittels batch alle Dateien mit der Endung .sqlite auslesen und falls eine Datei gefunden wird, soll diese gleich im Parameter mit der exe aufgerufen werden. Danach weitermachen, so lange, bis alle Dateien auf ihre Endung geprüft und ggf. auch aufgerufen wurden.
Leider habe ich keinen Schimmer wie ich dies vernünftig bewerkstelligen soll. Sicherlich mangelt es mir da an Erfahrung und Können, aber ich bin über jeden Hinweis und Tipp dankbar!
Grüße
doschtinator
8 Antworten
- LÖSUNG 60730 schreibt am 19.09.2011 um 23:57:47 Uhr
- LÖSUNG doschtinator schreibt am 20.09.2011 um 00:16:54 Uhr
- LÖSUNG 60730 schreibt am 20.09.2011 um 00:26:36 Uhr
- LÖSUNG doschtinator schreibt am 21.09.2011 um 19:03:50 Uhr
- LÖSUNG 60730 schreibt am 21.09.2011 um 20:37:21 Uhr
- LÖSUNG doschtinator schreibt am 21.09.2011 um 21:38:20 Uhr
- LÖSUNG Biber schreibt am 21.09.2011 um 21:50:23 Uhr
- LÖSUNG 60730 schreibt am 21.09.2011 um 22:03:50 Uhr
- LÖSUNG 60730 schreibt am 21.09.2011 um 20:37:21 Uhr
- LÖSUNG doschtinator schreibt am 21.09.2011 um 19:03:50 Uhr
- LÖSUNG 60730 schreibt am 20.09.2011 um 00:26:36 Uhr
- LÖSUNG doschtinator schreibt am 20.09.2011 um 00:16:54 Uhr
LÖSUNG 19.09.2011 um 23:57 Uhr
moin,
wieder mal ein typischer Fall für eine Schleife...
<edit>
</edit>
.. und mal wieder ein Typischer Fall von fadem Nebengeschmack...
Ergo:
Und wie du die beiden Demos nun in eine Batch bekommst, sagt dir for /?
scharfschalten nicht vergessen
Gruß
wieder mal ein typischer Fall für eine Schleife...
<edit>
</edit>
for /f %a in ('dir /b " H:\Firefox\*.sqlite"') do echo call sqlite3.exe H:\Firefox\%~nxa vacuum
.. und mal wieder ein Typischer Fall von fadem Nebengeschmack...
- Wenn der Feuerfuxs dabei rennt, mag der das sicherlich nicht so gerne, dass du dem die DBs unterm hintern wegrationalisierst...
Ergo:
tasklist|find /i "firefox" && echo der Feuerfuxx ist an||echo der Feuerfuxx macht ne Pause.
Und wie du die beiden Demos nun in eine Batch bekommst, sagt dir for /?
scharfschalten nicht vergessen
Gruß
LÖSUNG 20.09.2011 um 00:16 Uhr
Hallo und Danke für den Beitrag!
Teste es heute nicht mehr, gehe aber davon aus dass es funktionieren wird! Super!
Keine Angst, ist mir schon klar
Das ganze wird dann in ein Ab- bzw. Anmeldeskript gesteckt. Muss erst einmal testen was sich da besser anbietet.
Nochmals Danke!
Gruß doschtinator
Teste es heute nicht mehr, gehe aber davon aus dass es funktionieren wird! Super!
- Wenn der Feuerfuxs dabei rennt, mag der das sicherlich nicht so gerne, dass du dem die DBs unterm hintern wegrationalisierst...
Keine Angst, ist mir schon klar
Das ganze wird dann in ein Ab- bzw. Anmeldeskript gesteckt. Muss erst einmal testen was sich da besser anbietet.
Nochmals Danke!
Gruß doschtinator
LÖSUNG 20.09.2011 um 00:26 Uhr
Servus,
zwei, drei xxx bitten...
N8
zwei, drei xxx bitten...
- deine Überschrift, der Link ist falsch /)
- Dein Titel ist irreführend
Verweis auf das eigentliche Problem, welches mittels Batch oder vbs Datei automatisiert werden soll:
Strenggenommen ist das falsch - Problem, welches ohne Backup durch eine Batch automatisch erzeugt werden soll - wäre passender.- Backups vorm scharfschalten
Teste es heute nicht mehr, gehe aber davon aus dass es funktionieren wird!
- Nein - das sind Demos, die "so" in einer Batch nur demonstrieren ....
N8
LÖSUNG 21.09.2011 um 19:03 Uhr
Hallo,
ich muss mich noch einmal melden, da meine Versuche doch nicht so funktionieren wie gewollt ;-(
Ich habe jetzt mal eine paar *.sqlite Dateien in einen separaten Ordner kopiert um damit zu testen. Dazu ebenfalls die sqlite3.exe und auch meine sqlite_vac.bat mit folgendem Inhalt:
--
for %%i in (*.sqlite) do echo VACUUM; | sqlite3 %%i
--
Da der obige Code von TimoBeil leider auch nicht funktioniert hat, habe ich diesen von der Seite http://www.gettingclever.com/2008/06/vacuum-your-firefox-3.html genommen. Dort schreibt ein Nutzer, dass er mit dieser Batch bei jedem 10. Start des FF die .sqlite Dateien "säubert".
Den jeweils 10. Start habe ich mal rausgenommen, da mich das erst einmal nicht interessiert. Allerdings funktioniert die gekürzte Variante auch nicht!
Wenn ich ein Fenster öffne bei dem ich die Kommandozeile direkt eingeben kann, dann verrichtet der Befehl wie gewollt seine Aufgabe. Sobald ich den Befehl aber in einer .bat abspeichere und diese starte, blitzt nur kurz ein Fenster auf und die Größe der Dateien bleibt unverändert.
Jetzt wird es für mich doch unklar ...
Ich teste auf einem Win7 Rechner und auch das "Ausführen als Admin" bringt keinen Unterschied.
Vielleicht kann mir noch jemand behilflich sein?
Gruß doschtinator
P.S.: Habe den Link in meinem ersten Posting korrigiert. "Scharfschalten"? Gebe zu, dass ich nicht verstehe was damit gemeint ist!
ich muss mich noch einmal melden, da meine Versuche doch nicht so funktionieren wie gewollt ;-(
Ich habe jetzt mal eine paar *.sqlite Dateien in einen separaten Ordner kopiert um damit zu testen. Dazu ebenfalls die sqlite3.exe und auch meine sqlite_vac.bat mit folgendem Inhalt:
--
for %%i in (*.sqlite) do echo VACUUM; | sqlite3 %%i
--
Da der obige Code von TimoBeil leider auch nicht funktioniert hat, habe ich diesen von der Seite http://www.gettingclever.com/2008/06/vacuum-your-firefox-3.html genommen. Dort schreibt ein Nutzer, dass er mit dieser Batch bei jedem 10. Start des FF die .sqlite Dateien "säubert".
Den jeweils 10. Start habe ich mal rausgenommen, da mich das erst einmal nicht interessiert. Allerdings funktioniert die gekürzte Variante auch nicht!
Wenn ich ein Fenster öffne bei dem ich die Kommandozeile direkt eingeben kann, dann verrichtet der Befehl wie gewollt seine Aufgabe. Sobald ich den Befehl aber in einer .bat abspeichere und diese starte, blitzt nur kurz ein Fenster auf und die Größe der Dateien bleibt unverändert.
Jetzt wird es für mich doch unklar ...
Ich teste auf einem Win7 Rechner und auch das "Ausführen als Admin" bringt keinen Unterschied.
Vielleicht kann mir noch jemand behilflich sein?
Gruß doschtinator
P.S.: Habe den Link in meinem ersten Posting korrigiert. "Scharfschalten"? Gebe zu, dass ich nicht verstehe was damit gemeint ist!
LÖSUNG 21.09.2011 um 20:37 Uhr
moinsen,
also mal von vorne...
In meinem Ordner Test auf Laufwerk e:\ hab ich also sqlite Dateien.
Ich "will" das aber haargenauso nachbauen, wie es bei dir ist, also tricksenwirich...
Damit habe ich jetzt genau dein beschriebenes Umfeld.
Jetzt werfe ich meine obige Demo an..
ok . ein Luftschloss Meister Biber&Meister Bastla freuen sich bestimmt über diese Benamsung zuviel...
Dafür, dass ich den Winblows Code aus dem Bauch auf einem Mac geschrieben habe, und mir die besonderen Sonderzeichen wie ' aus dem Finger saugen musste, ist das meit dem zuvielen Leerzeichen ein Lehrzeichenstück, das ich einen Stempel untested brauche..
Aber nur in meinem Beispiel, der von dir genannte Weg ist etwas anders, aber ich vermute, wenn du nach batch scharfstellen Pipe hier suchst, erspare ich mir noch mehr Text...
Ergo:
Und wenn das bei dir auch nicht läuft, liegts daran, dass die Batch in dem Ordner . indem Sie gassi geht ausgeführt wird, keine .sqlite Dateien oder die sqlite3.exe findet.
Alle unklarheiten beseitigt?
Gruß
also mal von vorne...
E:\test>
E:\test>dir /b *.sqlite
addons.sqlite
chromeappsstore.sqlite
content-prefs.sqlite
cookies.sqlite
downloads.sqlite
extensions.sqlite
formhistory.sqlite
permissions.sqlite
places.sqlite
search.sqlite
signons.sqlite
webappsstore.sqlite
Ich "will" das aber haargenauso nachbauen, wie es bei dir ist, also tricksen
E:\test>subst h: e:\test
E:\test>md firefox
E:\test>subst h: e:\test
E:\test>xcopy *.sqlite firefox\
E:addons.sqlite
E:chromeappsstore.sqlite
E:content-prefs.sqlite
E:cookies.sqlite
E:downloads.sqlite
E:extensions.sqlite
E:formhistory.sqlite
E:permissions.sqlite
E:places.sqlite
E:search.sqlite
E:signons.sqlite
E:webappsstore.sqlite
12 Datei(en) kopiert
E:\test>cd /d h:\firefox
H:\firefox>dir /b
addons.sqlite
chromeappsstore.sqlite
content-prefs.sqlite
cookies.sqlite
downloads.sqlite
extensions.sqlite
formhistory.sqlite
permissions.sqlite
places.sqlite
search.sqlite
signons.sqlite
webappsstore.sqlite
Jetzt werfe ich meine obige Demo an..
H:\firefox>for /f %a in ('dir /b " H:\Firefox\*.sqlite"') do echo call sqlite3.e
xe H:\Firefox\%~nxa vacuum
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
H:\firefox>for /f %a in ('dir /b "H:\Firefox\*.sqlite"') do echo call sqlite3.ex
e H:\Firefox\%~nxa vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\addons.sqlite vacuum
call sqlite3.exe H:\Firefox\addons.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\chromeappsstore.sqlite vacuum
call sqlite3.exe H:\Firefox\chromeappsstore.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\content-prefs.sqlite vacuum
call sqlite3.exe H:\Firefox\content-prefs.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\cookies.sqlite vacuum
call sqlite3.exe H:\Firefox\cookies.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\downloads.sqlite vacuum
call sqlite3.exe H:\Firefox\downloads.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\extensions.sqlite vacuum
call sqlite3.exe H:\Firefox\extensions.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\formhistory.sqlite vacuum
call sqlite3.exe H:\Firefox\formhistory.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\permissions.sqlite vacuum
call sqlite3.exe H:\Firefox\permissions.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\places.sqlite vacuum
call sqlite3.exe H:\Firefox\places.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\search.sqlite vacuum
call sqlite3.exe H:\Firefox\search.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\signons.sqlite vacuum
call sqlite3.exe H:\Firefox\signons.sqlite vacuum
H:\firefox>echo call sqlite3.exe H:\Firefox\webappsstore.sqlite vacuum
call sqlite3.exe H:\Firefox\webappsstore.sqlite vacuum
H:\firefox>
- wie du erkennen kannst macht die Zeile aber nur das anzeigen, die Weicheifraktion der Admins bevorzugt sowas im Testbetrieb.
echo == sag mir, was du machen würdest, aber mach nix
Ergo:
- sieht das da oben für dich sauber aus, dann nimmst du das echo vorm call weg
- soll das in eine Batch, muß jedes % einen zwilling bekommen - siehe da unten - da hab ich deine batch variante absichtlich in einer Dosbox laufen lassen:
H:\firefox>for %%i in (*.sqlite) do echo VACUUM; | sqlite3 %%i
"%%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
H:\firefox>for %i in (*.sqlite) do echo VACUUM; | sqlite3 %i
H:\firefox>echo VACUUM; | sqlite3 addons.sqlite
H:\firefox>echo VACUUM; | sqlite3 chromeappsstore.sqlite
H:\firefox>echo VACUUM; | sqlite3 content-prefs.sqlite
H:\firefox>echo VACUUM; | sqlite3 cookies.sqlite
H:\firefox>echo VACUUM; | sqlite3 downloads.sqlite
H:\firefox>echo VACUUM; | sqlite3 extensions.sqlite
H:\firefox>echo VACUUM; | sqlite3 formhistory.sqlite
H:\firefox>echo VACUUM; | sqlite3 permissions.sqlite
H:\firefox>echo VACUUM; | sqlite3 places.sqlite
H:\firefox>echo VACUUM; | sqlite3 search.sqlite
H:\firefox>echo VACUUM; | sqlite3 signons.sqlite
H:\firefox>echo VACUUM; | sqlite3 webappsstore.sqlite
H:\firefox>
Alle unklarheiten beseitigt?
Gruß
LÖSUNG 21.09.2011 um 21:38 Uhr
Hallo,
Danke nochmals für den Tipp und die Arbeit.
Allerdings funktioniert bei mir die Lösung wie oben vorgeschlagen nicht! Es erscheint die Meldung, dass "... kann an dieser Stelle nicht syntaktisch verarbeitet werden" oder so ähnlich
-> Habe den Bildschirm abgefilmt und so konnte ich die Fehlermeldung lesen.
Ich habe mit ein wenig Recherche und Probieren jetzt doch eine Lösung gefunden die funktioniert:
--
REM sqlite vacuum
echo SQLite Vacuum startet
for %%i in (*.sqlite) do sqlite3 %%i VACUUM
pause
--
Damit kann ich jetzt entsprechend weitermachen.
Pfade und sonstiges werde ich sicherlich ohne Probleme anpassen können. Ansonsten melde ich mich noch einmal
Danke und Gruß
doschtinator
Danke nochmals für den Tipp und die Arbeit.
Allerdings funktioniert bei mir die Lösung wie oben vorgeschlagen nicht! Es erscheint die Meldung, dass "... kann an dieser Stelle nicht syntaktisch verarbeitet werden" oder so ähnlich
Ich habe mit ein wenig Recherche und Probieren jetzt doch eine Lösung gefunden die funktioniert:
--
REM sqlite vacuum
echo SQLite Vacuum startet
for %%i in (*.sqlite) do sqlite3 %%i VACUUM
pause
--
Damit kann ich jetzt entsprechend weitermachen.
Pfade und sonstiges werde ich sicherlich ohne Probleme anpassen können. Ansonsten melde ich mich noch einmal
Danke und Gruß
doschtinator
LÖSUNG 21.09.2011 um 21:50 Uhr
Na ja, T-Mo,
ich weiss ja nicht.... in der Zeit hättest du dir auch Rasta-Zöpfe flechten können oder deiner Frau eine Dauerwelle legen oder so...
Der verlinkte Tipp (den ich durchaus GUT bewerten würde) sagt doch nur
1) SQLite downloaden (“Pre compiled Binaries for Windows”)
2) Die Datei sqlite3.exe in den Profilordner kopieren.
3) Firefox schließen.
4) Eingabeaufforderung (Start -> ausführen -> cmd) öffnen und in das Profilverzeichnis navigieren.
5) [Im FF-Profilverzeichnis am CMD-Prompt] for %a in (*.sqlite) do (sqlite3 %a vacuum)
Punkt 1) ist eine einmalige Aktion.
Punkt 2) würde ich ändern in "in ein Verzeichnis im definierten %path% kopieren".
Auch den Plan, das 4) und 5), also Wechseln in das FF-Profilverzeichnis und dir FOR-Anweisung) per Batch statt von Hand abzufackeln.. okay.
Aber diesen Batch dann bei jeder An- oder Abmeldung anzuwerfen oder gar mit Taskkill sicherzustellen, dass kein Firefox mehr läuft...
--> Nö, wäre mir zu überdimensioniert.
Ist ein typischer Fall von "hin- und wieder sollte ich mal Fenster putzen (so alle paar Wochen) ", aber kein Fall von "täglich 2x rumoptimieren".
Ein Einzeiler wie vom Tippgeber gepostet reicht allemal zum gelegentlichen BEWUSSTEN (statt automatischen) Reorganisieren.
Grüße
Biber
ich weiss ja nicht.... in der Zeit hättest du dir auch Rasta-Zöpfe flechten können oder deiner Frau eine Dauerwelle legen oder so...
Der verlinkte Tipp (den ich durchaus GUT bewerten würde) sagt doch nur
1) SQLite downloaden (“Pre compiled Binaries for Windows”)
2) Die Datei sqlite3.exe in den Profilordner kopieren.
3) Firefox schließen.
4) Eingabeaufforderung (Start -> ausführen -> cmd) öffnen und in das Profilverzeichnis navigieren.
5) [Im FF-Profilverzeichnis am CMD-Prompt] for %a in (*.sqlite) do (sqlite3 %a vacuum)
Punkt 1) ist eine einmalige Aktion.
Punkt 2) würde ich ändern in "in ein Verzeichnis im definierten %path% kopieren".
Auch den Plan, das 4) und 5), also Wechseln in das FF-Profilverzeichnis und dir FOR-Anweisung) per Batch statt von Hand abzufackeln.. okay.
Aber diesen Batch dann bei jeder An- oder Abmeldung anzuwerfen oder gar mit Taskkill sicherzustellen, dass kein Firefox mehr läuft...
--> Nö, wäre mir zu überdimensioniert.
Ist ein typischer Fall von "hin- und wieder sollte ich mal Fenster putzen (so alle paar Wochen) ", aber kein Fall von "täglich 2x rumoptimieren".
Ein Einzeiler wie vom Tippgeber gepostet reicht allemal zum gelegentlichen BEWUSSTEN (statt automatischen) Reorganisieren.
Grüße
Biber
LÖSUNG 21.09.2011 um 22:03 Uhr
Servus Biber..
[OT]

Zuerst wollte er doch nur wissen, wie es geht, den Einzeiler hat er doch später erst gefunden und gepostet - weil ich im ersten Anlauf ein Leerzeichen drin hatte...
Bis auf das Bildchen einzufügen hab ich den genauso gelassen, wie er ursprünglich war.
[/OT]
Zurück/retour
edit----
jetzt hab ichs - schon wieder ein Lehrzeichen, diesmal zwischen code und =plain, das hat dich irritiert
das hab ich grade krummgebogen
/edit
[OT]
Zitat von @Biber:
Na ja, T-Mo,
ich weiss ja nicht.... in der Zeit hättest du dir auch Rasta-Zöpfe flechten können oder deiner Frau eine Dauerwelle legen oder so...
Na ja, T-Mo,
ich weiss ja nicht.... in der Zeit hättest du dir auch Rasta-Zöpfe flechten können oder deiner Frau eine Dauerwelle legen oder so...
- Rastas? bin ich das Momo aus der
Blindenstrasse? - Meine Frau mit Minipli? - die heisst doch nicht Tante Käthe..
- hätt ich einen Grund mir zwei Stempel zu Gimpen? die ich vielleicht noch ein paar mal nutze?
Der verlinkte Tipp (den ich durchaus GUT bewerten würde) sagt doch nur
Ich werkel schon seit ein paar Monden mit sqlite und andern DBs, das der Tipp schlecht ist - hab ich nirgendwo geschrieben Aber diesen Batch dann bei jeder An- oder Abmeldung anzuwerfen oder gar mit Taskkill sicherzustellen, dass kein Firefox mehr läuft...
- sag ich doch (bis aufs Killen) gar nicht
--> Nö, wäre mir zu überdimensioniert.
Ist ein typischer Fall von "hin- und wieder sollte ich mal Fenster putzen (so alle paar Wochen) ", aber kein Fall von "täglich 2x rumoptimieren".
Ist ein typischer Fall von "hin- und wieder sollte ich mal Fenster putzen (so alle paar Wochen) ", aber kein Fall von "täglich 2x rumoptimieren".
- Naja - wenn wir beide mal eben kurz was zusammenbruzzeln, dann kann (zumindestens bei mir) auch mal ein Lehrzeichen an der falschen Stelle hängen, für einen Laien ist das klickigucki schon netter - wobei ich immer noch keine Batchzeile hier liegen liess, dass sind doch nur Demos für die Dosboxx..
Ein Einzeiler wie vom Tippgeber gepostet reicht allemal zum gelegentlichen BEWUSSTEN (statt automatischen) Reorganisieren.
Wo findest du hier eine von mir geschliffene Schleifenzeile mit zwei %% ?Zuerst wollte er doch nur wissen, wie es geht, den Einzeiler hat er doch später erst gefunden und gepostet - weil ich im ersten Anlauf ein Leerzeichen drin hatte...
Bis auf das Bildchen einzufügen hab ich den genauso gelassen, wie er ursprünglich war.
[/OT]
Grüße
Biber
Biber
Zurück/retour
edit----
jetzt hab ichs - schon wieder ein Lehrzeichen, diesmal zwischen code und =plain, das hat dich irritiert
das hab ich grade krummgebogen
/edit