bonzai75
Goto Top

Kopieren eines Ordners mit Unterordnern per Batch

Ausgangssituation: Windows XP SP3 Neuinstallation von DVD, anschliessend automatisch ausgeführtes Batch soll eigenen Ordner X von der DVD samt Inhalt nach C kopieren

Hallo.

Im grossen und ganzen beschreibt der Untertitel meinen Plan. Ich beabsichtige mit Hilfe des Programms WinFuture xp-iso-builder eine Installations DVD zu erstellen, die das SP3 enthält und z.B. gern genutzte wichtige Anwendungen wie Firefox und Thunderbird gleich automatisch mit installiert.

Allerdings werden einige Programme, die ich nicht automatisch installieren möchte, in einem seperaten Ordner auf der DVD landen, den ich aber gerne im Anschluss auf ein frisch installiertes System kopieren lassen möchte, griffbereit sozusagen.

Das lässt sich mit einem Batch, das wie eine Anwendung automatisch ausgeführt werden kann, bewerkstelligen. Kompliziert ist der Umstand, das ich verschiedene Systeme mit unterschiedlicher Partitionierung habe. Will sagen, auf einem Rechner ist das DVD Laufwerk D: auf dem anderen E:. So ein Batch müsste also von einem Laufwerk X aus kopieren. Oder?

Also, mir fehlt da schlicht das Know-How. Es würde mich freuen, wenn hier jemand ein Batch Script zimmern kann, die diese Aktion auf jedem beliebigen Windows Rechner zustande bringt. Der Zielordner sollte sich schliesslich auf C befinden, da Windows bei mir sowieso generell die erste Partition erhält.

Grüsse
Ralph

Content-Key: 87897

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

Printed on: April 19, 2024 at 07:04 o'clock

Member: bastla
bastla May 18, 2008 at 20:06:51 (UTC)
Goto Top
Hallo bonzai75 und willkommen im Forum!

Eine gestartete Batchdatei "weiß", wo sie liegt - dazu musst Du nur den Parameter 0 auswerten. Beispiel (siehe auch Hilfe zu "for" mit "for /?"):
@echo off & setlocal
echo Laufwerk: %~d0
echo Ordner  : %~p0
echo Pfad    : %~dp0
Zusätzlich kannst Du für relative Pfadangaben ".." verwenden - ein "Nachbarordner" des Ordners mit der Batchdatei wäre demnach mit
"%~dp0\..\Nachbarordner"  
anzusprechen.

Grüße
bastla
Member: bonzai75
bonzai75 May 22, 2008 at 08:23:31 (UTC)
Goto Top
Hallo.

Danke erstmal für die schnelle Hilfe.

Ich hab' das jetzt mal so übernommen und mit meinem mageren Wissen ergänzt:

@echo off & setlocal
echo Laufwerk: %~d0
echo Ordner  : %~p0
echo Pfad    : %~dp0
rem weil ich festgestellt habe, das der Ordner nicht automatisach erstellt wird:
mkdir C:\Eigener_Ordner
xcopy %~dp0\Eigener_Ordner\*.* C:\Eigener_Ordner

Sicher primitiv aus Programmierersicht ;), aber funktioniert soweit. Nun werden aber leider nur die Dateien kopiert, die direkt im Ordner "Eigener_Ordner" liegen, nicht aber dessen Unterordner mit deren Inhalt.

Muss ich die jetzt alle einzeln behandeln, oder kann ich irgendwie in einer Zeile gleich den ganzen Ordner mit Unterordnern etc. kopieren?

Grüsse
Ralph
Member: bastla
bastla May 22, 2008 at 14:46:41 (UTC)
Goto Top
Hallo bonzai75!

Das
mkdir C:\Eigener_Ordner
kannst Du Dir ersparen, wenn Du beim Ziel des "xcopy" am Ende einen "\" setzt (oder den Schalter "/i" verwendest).

Ansonsten zeigt Dir "xcopy /?" unter anderem die Möglichkeit, auch Unterverzeichnisse (selbst leere) mitzukopieren - dazu genügt der Schalter "/e".

Grüße
bastla

P.S.: Bitte beim Posten von Batchzeilen Formatting instructions in the posts verwenden ...
Member: bonzai75
bonzai75 May 22, 2008 at 16:07:12 (UTC)
Goto Top
Vielen Dank für die Tips.

@echo off & setlocal
echo %~d0
echo %~p0
echo %~dp0
xcopy %~dp0\Eigener_Ordner\*.* C:\Eigener_Ordner\ /s /e /k /f
end

So funktioniert das jetzt.

Viele Grüsse
Ralph