
13268
23.05.2005, aktualisiert am 25.05.2005
Diverse Dateien umlenken
Hallo,
ich bin gerade dabei ein kleines Skript zu schreiben und habe da ein "kleines" Problem.
Also in dem Skript sollen die Dateien explorer.exe und user32.dll von der Festplatte auf ein RAM-Drive kopiert werden.
Soweit kein Problem.
Aber jetzt möchte ich dem BS klarmachen wenn es einen Aufruf für eben diese Dateien bekommt, das er die Datein aus dem RAM-Drive verwendet und nicht die von der Festplatte.
Jetzt werdet Ihr euch sicher fragen wofür der Schmarn, es geht darum das ich ein Windows PE mir gerade bastle das komplett von der CD startet und um den Zugriff etwas zu beschleunigen möchte ich eben diese Dateien aufs RAM-Drive legen.
Ich weiß auch das es da eine Möglichkeit gibt, nur weiß ich nicht mehr wie.
Danke im voraus.
Chris
ich bin gerade dabei ein kleines Skript zu schreiben und habe da ein "kleines" Problem.
Also in dem Skript sollen die Dateien explorer.exe und user32.dll von der Festplatte auf ein RAM-Drive kopiert werden.
Soweit kein Problem.
Aber jetzt möchte ich dem BS klarmachen wenn es einen Aufruf für eben diese Dateien bekommt, das er die Datein aus dem RAM-Drive verwendet und nicht die von der Festplatte.
Jetzt werdet Ihr euch sicher fragen wofür der Schmarn, es geht darum das ich ein Windows PE mir gerade bastle das komplett von der CD startet und um den Zugriff etwas zu beschleunigen möchte ich eben diese Dateien aufs RAM-Drive legen.
Ich weiß auch das es da eine Möglichkeit gibt, nur weiß ich nicht mehr wie.
Danke im voraus.
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 11024
Url: https://administrator.de/forum/diverse-dateien-umlenken-11024.html
Ausgedruckt am: 13.04.2025 um 03:04 Uhr
10 Kommentare
Neuester Kommentar

Hallo Christian,
ich bin mir jetzt nicht ganz sicher, aber versuche es mal unter "Systemeigenschaften/Erweitert/Umgebungsvariablen..."
Möglicherweise kannst Du es hier setzen.
Gruß, Rene
ich bin mir jetzt nicht ganz sicher, aber versuche es mal unter "Systemeigenschaften/Erweitert/Umgebungsvariablen..."
Möglicherweise kannst Du es hier setzen.
Gruß, Rene
Hallo Chris,
mein Lösungsvorschlag ist folgender:
- die gewünschten Dateien auf Ramdisk kopieren
- den Suchpfad, d.h. %Path% und Systemumgebung so ändern, dass Ramdisk als erstes gelesen wird.
- und das Ganze in einer wartbaren Autostart-*.bat-Datei mit zwei tools aus dem Microsoft-Resource-Kit
- oder eben ohne die beiden Tools
(dann ist manuelles Ändern der Umgebungsvariablen nötig, wie von Rene angeregt)
aber liebsten wie folgt
du brauchst setx.exe und pathman.exe aus dem RK-Kit!
:: 1. Batchdatei im Autostartorder anlegen oder eine bestehende erweitern
in der "xyz.bat":
:: 2 büschen lesbar und wartbar machen
:: neue Variable %Ramdisk% definieren... Inhalt Laufwerk der Ramdisk
:: neue Variable %OldPath% definieren... Inhalt der bisherige %PATH%
:: neue Variable %FileList% definieren...Inhalt alle Dateien, die auf %Ramdisk% sollen
:: Bedingung: alle dateien in %FileList% werden bisher im %PATH% gefunden.
set Ramdisk=R:\
set oldpath=%PATH%
set FileList=explorer.exe user32.dll beispiel3.exe weissderGilb.com setx.exe pathman.exe usw.com
:: 3. Dateien kopieren
for %%J in (user32.dll setx.exe pathman.exe) do copy %%~sf$Path:J %Ramdisk%
:: nicht verstehen wollen, den FOR-Befehl... einfach machen *gg
::
:: 4 prüfen, ob %Ramdisk schon im %PATH% an erster Stelle steht
If (%path:~0,3%)==(%Ramdisk%) goto :eof
:: sonst machen wir das halt einmalig...
:: 5. Für künftige DOS-Aufrufe den Path dauerhaft machen
setx PATH %Ramdisk%;%OldPath%
:: 6. Für die doofen Windowsprogramme die Umgebungsvariabe "Systempfad" einmal löschen
:: ... und fairerweise wieder neu aufbauen
pathman /rs %OldPath%
pathman /as %Ramdisk%;%OldPath%
:: ich sag es ungern, aber dazu braucht der User die entsprechenden Rechte..
:: wenn der User "nur" den UserPath ändern kann und nicht den SystemPath, dann streich Schritt 5 + 6
:: und mach das in einer Batchdatei unter deinem Namen (RUNAS Admin)
:: ODER wie von Rene vorgeschlagen manuell (Ändern der Umgebungsvariablen einmalig)
:: Schritt 5 und 6 sind ja nur einmal im leben nötig
:: ------------fertich iss
Hope it helps
Frank / der Biber aus Bremen
mein Lösungsvorschlag ist folgender:
- die gewünschten Dateien auf Ramdisk kopieren
- den Suchpfad, d.h. %Path% und Systemumgebung so ändern, dass Ramdisk als erstes gelesen wird.
- und das Ganze in einer wartbaren Autostart-*.bat-Datei mit zwei tools aus dem Microsoft-Resource-Kit
- oder eben ohne die beiden Tools
(dann ist manuelles Ändern der Umgebungsvariablen nötig, wie von Rene angeregt)
aber liebsten wie folgt
du brauchst setx.exe und pathman.exe aus dem RK-Kit!
:: 1. Batchdatei im Autostartorder anlegen oder eine bestehende erweitern
in der "xyz.bat":
:: 2 büschen lesbar und wartbar machen
:: neue Variable %Ramdisk% definieren... Inhalt Laufwerk der Ramdisk
:: neue Variable %OldPath% definieren... Inhalt der bisherige %PATH%
:: neue Variable %FileList% definieren...Inhalt alle Dateien, die auf %Ramdisk% sollen
:: Bedingung: alle dateien in %FileList% werden bisher im %PATH% gefunden.
set Ramdisk=R:\
set oldpath=%PATH%
set FileList=explorer.exe user32.dll beispiel3.exe weissderGilb.com setx.exe pathman.exe usw.com
:: 3. Dateien kopieren
for %%J in (user32.dll setx.exe pathman.exe) do copy %%~sf$Path:J %Ramdisk%
:: nicht verstehen wollen, den FOR-Befehl... einfach machen *gg
::
:: 4 prüfen, ob %Ramdisk schon im %PATH% an erster Stelle steht
If (%path:~0,3%)==(%Ramdisk%) goto :eof
:: sonst machen wir das halt einmalig...
:: 5. Für künftige DOS-Aufrufe den Path dauerhaft machen
setx PATH %Ramdisk%;%OldPath%
:: 6. Für die doofen Windowsprogramme die Umgebungsvariabe "Systempfad" einmal löschen
:: ... und fairerweise wieder neu aufbauen
pathman /rs %OldPath%
pathman /as %Ramdisk%;%OldPath%
:: ich sag es ungern, aber dazu braucht der User die entsprechenden Rechte..
:: wenn der User "nur" den UserPath ändern kann und nicht den SystemPath, dann streich Schritt 5 + 6
:: und mach das in einer Batchdatei unter deinem Namen (RUNAS Admin)
:: ODER wie von Rene vorgeschlagen manuell (Ändern der Umgebungsvariablen einmalig)
:: Schritt 5 und 6 sind ja nur einmal im leben nötig
:: ------------fertich iss
Hope it helps
Frank / der Biber aus Bremen
Tja, Chris,
So ist das immer mit meiner Software..die reift beim Kunden *feix
Hhhhmmm ...
...das Kopieren der Dateien macht er noch oder macht er nicht??
Hab ich nicht ganz verstanden...
Oder verreckt er erst in der "IF ... goto :eof "- Zeile???
Bitte poste doch noch mal zurück mit Deiner angepassten Autostart-Batdatei, denn:
- entweder ist in der %Filelist% eine Datei dabei, die in Anführungszeichen gehört
- oder im %Path% ist ein Verzeichnisname, der in ...(s.o)
- oder die Ramdisk heißt nicht R:\ bei Dir (*lach, kleiner Scherz)
Dass der %path% unverändert ist (wenn Du nach wie vor im selben DOS-Fenster bist),
... ja, stimmt & sollte so ...
denn diese %Path%-Anpassung hab ich mir bewusst geschenkt..
die wäre meiner Meinung ohnehin wieder vergessen, wenn die Autostart-Batdatei abgearbeitet ist.
Ebenso wie die drei neu definierten variablen %Filelist%, %Oldpath% etc auch nicht dauerhaft gespeichert werden, also beim nächsten Aufmachen eines DOS-Fensters weg sind.
Aber als Trockenübung kannst Du sowohl am Dos-Prompt wie auch in der obigen *-Bat-Datei einfügen/eingeben "set path=%ramdisk%;%path%" bzw. wie oben:
::
zum Testen am Prompt:
set Oldpath=%path%
set ramdisk=R:\
::
oder wie die nun heißen mag)
set path=%ramdisk%;%oldpath%
und dann schau mal, was ein echo bringt..
echo %path% sollte nun "R:\;C\windows...."...und weitere 3 Meter Text bringen
echo (%path:~0,3%)................sollte "(R:\)" ...bringen
Würde mich zutiefst deprimieren, wenn wir beide nicht mal son Mini-Batchkrams zum fliegen brächten.
Also, lass uns mal die Kuh vom Eis holen
Frank /der Biber aus Bremen
So ist das immer mit meiner Software..die reift beim Kunden *feix
Hhhhmmm ...
...das Kopieren der Dateien macht er noch oder macht er nicht??
Hab ich nicht ganz verstanden...
Oder verreckt er erst in der "IF ... goto :eof "- Zeile???
Bitte poste doch noch mal zurück mit Deiner angepassten Autostart-Batdatei, denn:
- entweder ist in der %Filelist% eine Datei dabei, die in Anführungszeichen gehört
- oder im %Path% ist ein Verzeichnisname, der in ...(s.o)
- oder die Ramdisk heißt nicht R:\ bei Dir (*lach, kleiner Scherz)
Dass der %path% unverändert ist (wenn Du nach wie vor im selben DOS-Fenster bist),
... ja, stimmt & sollte so ...
denn diese %Path%-Anpassung hab ich mir bewusst geschenkt..
die wäre meiner Meinung ohnehin wieder vergessen, wenn die Autostart-Batdatei abgearbeitet ist.
Ebenso wie die drei neu definierten variablen %Filelist%, %Oldpath% etc auch nicht dauerhaft gespeichert werden, also beim nächsten Aufmachen eines DOS-Fensters weg sind.
Aber als Trockenübung kannst Du sowohl am Dos-Prompt wie auch in der obigen *-Bat-Datei einfügen/eingeben "set path=%ramdisk%;%path%" bzw. wie oben:
::
set Oldpath=%path%
set ramdisk=R:\
::
set path=%ramdisk%;%oldpath%
und dann schau mal, was ein echo bringt..
echo %path% sollte nun "R:\;C\windows...."...und weitere 3 Meter Text bringen
echo (%path:~0,3%)................sollte "(R:\)" ...bringen
Würde mich zutiefst deprimieren, wenn wir beide nicht mal son Mini-Batchkrams zum fliegen brächten.
Also, lass uns mal die Kuh vom Eis holen
Frank /der Biber aus Bremen
*Kopfkratz
Moin Chris,
Nun kommt wieder der Satz, bei dem mich meine Kunden auch immer lächelnd zur Tür bringen: "Bei mir läuft es aber..."
Wer bringt denn diese ausländische Fehlermeldung ("The syntax...") ?
Ist das der CMD-Interpreter oder hast Du eine andere SetX.Exe als ich und die sacht sowas?
*grummel*
Lass uns das mal direkt klären und danach hier posten...
Frank / Biber3_AT_hotmail.de
Moin Chris,
Nun kommt wieder der Satz, bei dem mich meine Kunden auch immer lächelnd zur Tür bringen: "Bei mir läuft es aber..."
Wer bringt denn diese ausländische Fehlermeldung ("The syntax...") ?
Ist das der CMD-Interpreter oder hast Du eine andere SetX.Exe als ich und die sacht sowas?
*grummel*
Lass uns das mal direkt klären und danach hier posten...
Frank / Biber3_AT_hotmail.de