ironbar
Goto Top

variable pfadangabe in batch

Hallo.

Ich habe ein Problem bzw. komme nicht drauf wie ich in einer Batchdatei eine variable Pfadangabe machen kann, damit das kopieren von Daten von einer CD auch funktioniert.

Mit denn Festenpfad, wie unten, geht das ohne Probleme..

echo Aktualisierung von Windows...
xcopy c:\Laufzeitfehler_beheben\MSDATGRD.OCX c:\windows\system32\*.* /s /q /y
echo.
echo Registrieren von MSDATGRD.OCX
regsvr32 "C:\Windows\System32\MSDATGRD.OCX"

Bin über jede Hilfe o. Tipp froh.

Danke schon mal
Martin

Content-Key: 84492

Url: https://administrator.de/contentid/84492

Printed on: April 24, 2024 at 22:04 o'clock

Member: Biber
Biber Apr 02, 2008 at 08:39:05 (UTC)
Goto Top
Moin Ironbar,

dazu gibt es natürlich mehrere Strategien.
Die zwei naheliegendsten wären
  • entweder davon ausgehen, dass der gestartete Batch auch auf der CD liegt - dann lässt sich das dazugehörige Laufwerk mit der abgeleiteten Variablen %~d0 ermitteln
  • oder das/die CD-Laufwerke ermitteln und dort auf das Vorhandensein des OCX-Files prüfen.

Deshalb Nachfrage: liegt der Batch auch auf der CD?

Nachfrage 2: Warum kopierst Du denn die *.ocx mit XCopy und mit allen Unterverzeichnisen??? *g

Grüße
Biber
Member: Ironbar
Ironbar Apr 02, 2008 at 09:03:10 (UTC)
Goto Top
Danke schon einmal

Die Batch wird von der CD ausgeführt.

Kopieren: Wie soll ich es sonst kopieren? Finde da xcopy am einfachsten. um die Datei in das Verzeichnis zu bekommen.

Kannst Du mir ein Beispiel schreiben wie es funktioniert?


Geht das auch damit?
%CURRENTDIR%\Laufzeitfehler_beheben\MSDATGRD.OCX c:\windows\system32\*.* /s /q /y
Member: Biber
Biber Apr 02, 2008 at 09:33:23 (UTC)
Goto Top
Moin Ironbar,

dann so:
echo Aktualisierung von Windows...
copy %~d0\Laufzeitfehler_beheben\MSDATGRD.OCX %windir%\system32\*.* /y > nul
echo\
echo Registrieren von MSDATGRD.OCX
regsvr32 /s %windir%\system32\MSDATGRD.OCX

Gruß
Biber
Member: Ironbar
Ironbar Apr 02, 2008 at 10:25:20 (UTC)
Goto Top
Danke.

klappt super.

Nur eine Frage noch, wenn ich noch eine Datei kopieren will meckert er das der Prozess schon verwendet wird. Wie kann ich das ändern?
Member: Biber
Biber Apr 02, 2008 at 10:33:08 (UTC)
Goto Top
Hmm, Ironbar,

kannst Du dazu mal den konkreten Code posten bitte?

Danke
Biber
Member: Ironbar
Ironbar Apr 02, 2008 at 10:53:37 (UTC)
Goto Top
Hier der Code

echo Aktualisierung von Windwows... MSDATGRD.OCX
copy %~d0\CD_ROOT\PROG\MSDATGRD\MSDATGRD.OCX %windir%\system32\*.* /y > nul
echo.
echo Registrieren von MSDATGRD.OCX
regsvr32 /s %windir%\system32\MSDATGRD.OCX"
echo.
echo Aktualisierung von Windwows... MSFLXGRD.OCX
copy %~d0\CD_ROOT\PROG\MSFLXGRD\MSFLXGRD.OCX %windir%\system32\*.* /y > nul
echo\
echo.
echo Registrieren von MSFLXGRD.OCX
regsvr32 /s %windir%\system32\MSFLXGRD.OCX"
echo.
echo Aktualisierung abgeschlossen
EXIT
Member: Biber
Biber Apr 02, 2008 at 11:00:29 (UTC)
Goto Top
Dann kann ich mir eigentlich nur vorstellen, dass Du vorher die bereits registrierten Controls erst mit "regsvr32 -u MSDATGRD.OCX" (etc., OHNE Pfad) un-registrieren musst.
Vor dem Kopieren.

Und nein, ich weiß nicht, was das deutsche Wort für un-registrieren ist.
De-registrieren oder ent-registieren hören sich genauso schräg an.

Grüße
Biber
Member: Ironbar
Ironbar Apr 02, 2008 at 13:39:16 (UTC)
Goto Top
Funktioniert jetzt.

Die " am edne von .ocx waren zuviel.

Danke für die Hilfe