DOS-Fenster automatisch schliessen
Enrico
- programmiertechnik
1 Der Martin1 Enrico0 Der Martin0 Enrico
0 Christoph Schnauß0 Enrico
0 Benne0 Der Martin
Hallo,
Da ich meinen Rechner öfters formatiere und neu einrichte, dachte ich mir, dass ich die Aktionen, die ich hier dann immer ausführe, aus einer Batchdatei heraus aufrufen lasse.
Die Batchdatei sieht aktuell folgendermassen aus:
@echo off
regsvr32 /u /s mydocs.dll REM Ordner "Eigene Bilder", "Eigene Musik" und "Eigene Videos" löschen >NUL
regsvr32 /u /s regwizc.dll REM Registration-Wizard abschalten >NUL
regsvr32 /u /s shimgvw.dll REM Bild- und Faxanzeige deaktivieren >NUL
start "sfc /purgecache" REM SFC-Ordner löschen >NUL
start "sfc /cachesize=0" REM SFC-Ordner abschalten >NUL
attrib -R -A -S -H %SYSTEMROOT%\system32\dllcache /S >NUL
deltree %SYSTEMROOT%\system32\dllcache /s >NUL
attrib -R -A -S -H %SYSTEMROOT%\Driver Cache\i386\driver.cab >NUL
del %SYSTEMROOT%\Driver Cache\i386\driver.cab /S >NUL
exit
Es funktioniert auch soweit alles einwandfrei.
Mein einziges Problem ist, dass die beiden Zeilen start "sfc /purgecache" und start "sfc /cachesize=0" eigene DOS-Fenster öffnen (ohne den vorangesetzten Befehl "start" hätten die Aufrufe aber nicht funktioniert), die ich immer manuell schliessen muss.
Der Befehl "exit" bezieht sich ja auf die eigentliche Batchdatei, die die Aufrufe startet, nicht aber auf die weiteren Fenster, die sich durch die Aufrufe öffnen.
Gibt es eine Möglichkeit, diese auch automatisch schliessen zu lassen ?
Kann ich auch die Importierung einer reg-Datei in die Registrierdatenbank aus einer Batchdatei veranlassen ?
Schon mal, wie so oft in den letzten Tagen *g*, vielen Dank.
Gruss, Enrico
Hallo Enrico,
ich dachte eigentlich bisher, dass ich in Windows schon so ziemlich jedes Bit beim Vornamen kenne - naja, jedenfalls zum Großteil. ;)
Aber wenn ich mir deine Batchdatei so ansehe, dann beschleicht mich der Verdacht, dass ich bei einigen Windows-Interna noch von dir lernen könnte. Umgekehrt wahrscheinlich auch. *g*
regsvr32 /u /s mydocs.dll REM Ordner "Eigene Bilder", "Eigene Musik" und "Eigene Videos" löschen >NUL
Hey, das ist spannend: Das heißt, ich werde damit die Nerverei los, dass alle Nase lang Ordner mit diesen Namen neu angelegt werden? Ist dir bekannt, ob sich das auch auf das Verzeichnis "Eigene Dateien" erstreckt, oder wenn nicht, ob man das Prinzip darauf ausweiten kann?
Bei Windows 98 hatte ich es seinerzeit geschafft, diesen "Eigene Dateien"-Quatsch durch Patchen einiger Systemdateien loszuwerden. Wenn ich mich recht erinnere, habe ich dazu alle Referenzen auf mydocs.dll aus der Registry gelöscht, die Datei selbst ebenfalls, und musste dann noch irgendwo in der shell32.dll was patchen.
So habe ich Windows auch abgewöhnt, im Root jedes Laufwerks ein Verzeichnis mit dem Namen "recycled" anzulegen - den Windows-Papierkorb hatte ich zwar schon abgestellt, aber Windows achtet dann immer noch drauf, dass die zugehörigen recycled-Verzeichnisse trotzdem da sind.
Bei Windows 2000 habe ich das leider noch nicht geschafft - liegt aber vermutlich daran, dass ich es hier noch nicht probiert habe. ;)
regsvr32 /u /s regwizc.dll REM Registration-Wizard abschalten >NUL
Was würde der sonst tun? Wozu ist der gut?
start "sfc /purgecache" REM SFC-Ordner löschen >NUL
start "sfc /cachesize=0" REM SFC-Ordner abschalten >NUL
attrib -R -A -S -H %SYSTEMROOT%\system32\dllcache /S >NUL
deltree %SYSTEMROOT%\system32\dllcache /s >NUL
attrib -R -A -S -H %SYSTEMROOT%\Driver Cache\i386\driver.cab >NUL
del %SYSTEMROOT%\Driver Cache\i386\driver.cab /S >NUL
Das hab ich "endgültiger" gemacht: Ein Patch an der sfc.dll, dann kann man -wie in den Urversionen von XP/2k ohne Service Pack- den Systemdateischutz komplett deaktivieren und das entsprechende Cache-Verzeichnis löschen.
Mein einziges Problem ist, dass die beiden Zeilen start "sfc /purgecache" und start "sfc /cachesize=0" eigene DOS-Fenster öffnen (ohne den vorangesetzten Befehl "start" hätten die Aufrufe aber nicht funktioniert), die ich immer manuell schliessen muss.
Das Öffnen zusätzlicher Konsolenfenster ist hier nicht einzusehen. sfc.exe ist eine reinrassige Win32-Applikation, warum sollte Windows beim Aufruf dieser Anwendung ein Konsolenfenster öffnen? Das will mir nicht einleuchten.
Leider hast du dann AFAIK auch keine Möglichkeit, diese Fenster automatisch wieder zu schließen.
Aber wieso überhaupt mit dem "start"-Kommando? Was mich außerdem irritiert, sind die Anführungszeichen, die du gesetzt hast. Das sollte ohne genauso funktionieren:
sfc /purgecache
Kann ich auch die Importierung einer reg-Datei in die Registrierdatenbank aus einer Batchdatei veranlassen ?
Klar doch, ganz einfach mit
regedit <regfile>
oder, wenn's ohne Rückfrage und Bestätigung sein soll
regedit <regfile> /Q
Schönes Wochenende noch,
Martin
Hallo Martin,
erstmal Danke für Deine ausführliche Rückantwort :-)
Das heißt, ich werde damit die Nerverei los, dass alle Nase lang Ordner mit diesen Namen neu angelegt werden?
Genau so ist es. Diese Ordner bist Du dann endgültig los.
Ist dir bekannt, ob sich das auch auf das Verzeichnis "Eigene Dateien" erstreckt, oder wenn nicht, ob man das Prinzip darauf ausweiten kann?
Da bin ich gerade nochfieberhaft am Recherchieren. Ich gebe Dir bescheid, sobald ich was gefunden habe. Der Gedanke, dies auch auf andere (subjektiv) unnötigen Ordner auszuweiten, ist wirklich gut. :-))
regsvr32 /u /s regwizc.dll REM Registration-Wizard abschalten >NUL
Diese zeile schaltet den Registrier-Wizard ab, der (bei der einen oder anderen Installation) notwendig ist, bevor man auf die Widows-Update Seite zugreifen kann.
Das hab ich "endgültiger" gemacht: Ein Patch an der sfc.dll, dann kann man -wie in den Urversionen von XP/2k ohne Service Pack- den Systemdateischutz komplett deaktivieren und das entsprechende Cache-Verzeichnis löschen.
Kannst Du mir genauere Details liefern ?
Das Öffnen zusätzlicher Konsolenfenster ist hier nicht einzusehen. sfc.exe ist eine reinrassige Win32-Applikation, warum sollte Windows beim Aufruf dieser Anwendung ein Konsolenfenster öffnen? Das will mir nicht einleuchten.
Aber wieso überhaupt mit dem "start"-Kommando? Was mich außerdem irritiert, sind die Anführungszeichen, die du gesetzt hast.
Ohne den Zusatz "start" bekomme ich im DOS-Fenster nur eine Übersicht über die Verwendung des Befehles "sfc". Mit dem Zusatz "start" werden die Befehle einwandfrei ausgeführt, aber leider mit den zwei zusätzlichen Fenstern.
Wenn ich den Systemschutz patchen könnte, dann könnte ich mir die beiden "start"-Zeilen sparen und stünde nicht mehr vor dem Problem, die Fenster manuell schliessen zu müssen.
Hast Du die gepatchten Dateien dann direkt in's Setup integriert oder manuell drübergespielt ?
regedit <regfile>
War ja mehr als nur einfach :-))
Gruss, Enrico
PS: Ebenfalls schon mal ein schönes Wochenende :-))
Hi Enrico,
Genau so ist es. Diese Ordner bist Du dann endgültig los.
Super, gleich mal notieren, auch für zukünftige Installationen (eine ist gleich in den nächsten paar Tagen fällig).
Da bin ich gerade nochfieberhaft am Recherchieren. Ich gebe Dir bescheid, sobald ich was gefunden habe. Der Gedanke, dies auch auf andere (subjektiv) unnötigen Ordner auszuweiten, ist wirklich gut. :-))
Danke, da bin ich gespannt.
Diese zeile schaltet den Registrier-Wizard ab, der (bei der einen oder anderen Installation) notwendig ist, bevor man auf die Widows-Update Seite zugreifen kann.
Ah, das hatte ich vermutet, also tatsächlich nur Ballast. ;)
Ich war mir nicht sicher, ob sich "Registrierung" hier nicht auf die Registrierung bestimmter Systembibliotheken beziehen könnte.
[Patch sfc.dll]
Kannst Du mir genauere Details liefern?
Ich versuch's mal.
SFC (System File Check) und SFP (System File Protection) sind in Windows XP und 2000 fest verankerte Funktionen (ansatzweise sogar schon in ME). Normalerweise eine gute Idee, wichtige Dateien zu schützen, aber lästig für den "Poweruser", der selbst weiß, was er tut.
In den Urversionen von XP und 2000 konnte man SFP daher durch einen simplen Registry-Eintrag abschalten:
[HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon]
"SFCDisable"=dword:FFFFFF9D
Ab SP1 (bei XP) bzw. SP2 (bei 2k) funktionierte diese Abschaltung plötzlich nicht mehr, die Abfrage des entsprechenden Registry-Eintrags wurde einfach übergangen. Um sie wieder wirksam zu machen, ist der besagte Patch der sfc.dll erforderlich, der je nach Version und Service Pack unterschiedlich ausfällt. Auf http://www.winfaq.de/faq_html/tip0504.htm findest du eine ausführliche Anleitung dazu, Google dürfte dir bei geeigneten Suchbegriffen (z.B. "Windows File Protection", "System File Protection" oder auch "SFCDisable") noch massenhaft Informationen dazu liefern.
Ohne den Zusatz "start" bekomme ich im DOS-Fenster nur eine Übersicht über die Verwendung des Befehles "sfc". Mit dem Zusatz "start" werden die Befehle einwandfrei ausgeführt, aber leider mit den zwei zusätzlichen Fenstern.
Seltsam. Bei mir (Windows 2000 SP4) kann ich die sfc-Kommandos auch direkt von der Kommandozeile aufrufen und sie werden korrekt ausgeführt (natürlich ohne die Anführungszeichen).
Hast Du die gepatchten Dateien dann direkt in's Setup integriert oder manuell drübergespielt?
Ich hab sie nachträglich drübergebügelt. Ich habe auch mal versucht, sie direkt ins Setup zu integrieren, aber dann motzt das Windows-Setup irgendwann, weil offensichtlich schon bei der Installation eine Überprüfung stattfindet und die gepatchte Datei dann auffällt. Es gibt auch keine Option in der Art von "fehlerhafte Datei trotzdem installieren".
regedit <regfile>
War ja mehr als nur einfach :-))
Sag ich doch. ;-)
So long,
Martin
Hallo Martin,
Auf http://www.winfaq.de/faq_html/tip0504.htm findest du eine ausführliche Anleitung dazu.
Gut, Danke für den Link, hab ihn mir zu Gemüte geführt. Der Patch war bei mir aber gar nicht mehr notwendig, da ich die SFC mit nLite komplett rausgeschnitten habe, somit habe ich zwar die angesprochene Datei "sfc_os.dll", aber das Offset "ECE9" nicht mehr.
Bezüglich des Problemes, den Ordner "Eigene Dateien" zu löschen, konnte ich nur insofern fündig werden, als dass man den Ordner nicht löschen, sondern nur verschieben kann:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Personal"="{Pfad}"
Evtl. sollte man diese Angabe auch unter folgendem Zweig ergänzen (wobei ich mir hier noch nicht ganz sicher bin, ob das auch notwendig ist):
[HKEY_USERS.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
Hoffe, das hilft Dir trotzdem weiter.
Gruss, Enrico
hallo Enrico,
Bezüglich des Problemes, den Ordner "Eigene Dateien" zu löschen, konnte ich nur insofern fündig werden, als dass man den Ordner nicht löschen, sondern nur verschieben kann
Das geht problemlos. Bei mir steckt "Eigene Dateien" schon lange in
C:\Temp\Eigene Dateien
Evtl. sollte man diese Angabe auch unter folgendem Zweig ergänzen (wobei ich mir hier noch nicht ganz sicher bin, ob das auch notwendig ist):
[HKEY_USERS.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
Nein, das ist nicht zwingend erforderlich. Es kann sogar der gesamte Schlüssel vollkommen gestrichen werden.
Grüße aus Berlin
Christoph S.
Hi Christoph,
Das geht problemlos. Bei mir steckt "Eigene Dateien" schon lange in
C:\Temp\Eigene Dateien
- und zwar grundsätzlich für alle vorhandenen Accounts.
Ja, klar geht das - siehe meine Antwort an Enrico. Aber damit hast du immer noch eine Sonderbehandlung dieses Ordners durch die Windows-Shell. Jede Dateisuche beginnt defaultmäßig in diesem Verzeichnis, die meisten Applikationen wollen ihre Daten bevorzugt dort speichern und nicht in dem Verzeichnis, das man ihnen als Arbeitsverzeichnis zugeordnet hat, im Explorer wird das Verzeichnis mit einem eigenen Symbol und Extrawurst im Kontextmenü angezeigt, etc.pp.
Und DAS ist es, was ich loswerden möchte, diese Sonderstellung eines bestimmten Verzeichnisses. Nicht das Verzeichnis an sich.
Schönes WE noch,
Martin
Hallo,
Der Patch war bei mir aber gar nicht mehr notwendig, da ich die SFC mit nLite komplett rausgeschnitten habe, somit habe ich zwar die angesprochene Datei "sfc_os.dll", aber das Offset "ECE9" nicht mehr.
Ach so... die Möglichkeit kannte ich bisher noch nicht.
Bezüglich des Problemes, den Ordner "Eigene Dateien" zu löschen, konnte ich nur insofern fündig werden, als dass man den Ordner nicht löschen, sondern nur verschieben kann:
Ja, _das_ ist ein alter Hut. Und verschieben kann man das Verzeichnis auch einfacher, nämlich direkt über das Kontextmenü des entsprechenden Symbols auf dem Desktop (wenn man es nicht entfernt hat). Eine direkte Manipulation in der Registry ist also in diesem Fall überflüssig.
Hoffe, das hilft Dir trotzdem weiter.
Nö, überhaupt nicht. Ich möchte ja nicht irgendein Verzeichnis als solches loswerden ("Personal" verweist bei mir sowieso schon auf E:), sondern den Mechanismus, der diesem Verzeichnis eine besondere Rolle zuordnet. Anders ausgedrückt: Ich möchte nicht meine Telefonnummer an einen anderen Anschluss umleiten, sondern den Telefonbucheintrag gelöscht wissen, der dafür sorgt, dass dauernd Fremde bei mir anrufen. ;-)
Man kann zwar auch die entsprechenden Shell Folder-Einträge in der Registry löschen, aber dann macht Windows beim nächsten Zugriff plötzlich eine Art Selbstreparatur: Es legt ein Verzeichnis %windir%\Personal an und trägt das in die beiden Shell Folder-Schlüssel ein.
So long,
Martin
Hallo Martin,
Nö, überhaupt nicht
Hatte ich befürchtet :o)
Hier kannste die Installation extrem absprecken (IE, Outlook, Messenger rauslassen, Dienste abwählen, etc. usw....). Funktioniert sogar - entgegen den Informationen - einwandfrei mit OEM-Versionen.
Ist eine sehr feine Sache. Bei mir beträgt die funktionstüchtige Installation nur noch ca. 150 MB (anstatt über 500 MB) :-))
Gruss, Enrico
hallo,
Hey, das ist spannend: Das heißt, ich werde damit die Nerverei los, dass alle Nase lang Ordner mit diesen Namen neu angelegt werden?
Tatsächlich, so ist es. Was mir dabei noch fehlt, ist eine Möglichkeit, den Ordner "Favoriten" ebenfalls loszuwerden. Auch der kommt immer wieder, und erhält immer wieder ein Unterverzeichnis "Links".
Grüße aus Berlin
Christoph S.
Hallo Christoph,
hab da was gefunden:
1. Registry öffnen
2. Unter HKEY_CURRENT_USER/ Software/ Microsoft/ Internet Explorer/ Toolbar den Wert von LinksFolderName bearbeiten, indem man unter Wert den Namen Links entfernt. Mit OK bestätigen und die Registry verlassen.
3. Im Internet-Explorer in den "Favoriten" den Ordner 'Links' löschen.
4. Nach einem Neustart ist der Ordner nun endgültig verschwunden.
Ich hoffe, das hilft Dir ein bischen weiter.
Gruss, Enrico
Hallo,
Da ich meinen Rechner öfters formatiere und neu einrichte, dachte ich mir, dass ich die Aktionen, die ich hier dann immer ausführe, aus einer Batchdatei heraus aufrufen lasse.
mich würde mal interessieren warum du deinen Rechner so häufig neu einrichten musst.
Hat das eventuell was damit zu tun, wie du dein Windows zuschneidest?
Gruß,
Benne
Hi Enrico,
ich hab inzwischen mal diesen Tipp
regsvr32 /u /s mydocs.dll
an einem Windows 2000 selbst ausprobiert. Ich bekomme zwar die Meldung, dass die DLL erfolgreich de-registriert wurde, aber kurze Zeit später taucht schon wieder das Verzeichnis "Eigene Bilder" auf.
Das war also wohl ein Satz mit X.
Schade eigentlich... :(
So long,
Martin