netscape
Goto Top

Kopieren mit Batch

Hi,

ich möchte mit set /p einen Pfad in eine Variable einlesen und dann alles was sich darin befindet in einen ordner kopieren, wie funktioniert das?

Content-Key: 38110

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

Printed on: April 25, 2024 at 13:04 o'clock

Member: Biber
Biber Aug 16, 2006 at 11:44:03 (UTC)
Goto Top
Moin netscape,
...
set "ziel=c:\zielordner\Beispiel"  
set /P "quelle=Bitte Quellpfad eingeben: "  
if not [%quelle%] ==  if exist "%quelle%\*.*" copy "%quelle%\*.*" "%ziel%"  

Falls auch Unterzeichnisstrukturen unterhalb von %quelle% mitkopiert werden sollen, dann besser "XCopy" statt "Copy" nehmen.
Siehe die einschlägigen Hilfen am CMD-Prompt oder Windows-Hilfe.

Gruß
Biber
Member: Netscape
Netscape Aug 16, 2006 at 12:19:00 (UTC)
Goto Top
Danke dir, das funktioniert einwandfrei.

Nun möchte ich noch den eingegeben pfad in eine txt speichern, damit ich den pfad nur einmal eingeben muss und später auf den gespeicherten Pfad in der txt zurückgreifen kann.

Kannst du mir dabei auch helfen?
Member: Biber
Biber Aug 16, 2006 at 12:30:15 (UTC)
Goto Top
...
set "ziel=c:\zielordner\Beispiel"  
set "DateiMitGemerktemPfad=c:\meineDateien\Merkpfad.txt"  
if not exist "%DateiMitGemerktemPfad%" (  
  set /P "quelle=Bitte Quellpfad eingeben: "  
) ELSE (
  set /P quelle=<%DateiMitGemerktemPfad%
)
if not [%quelle%] ==  if exist "%quelle%\*.*" (   
     copy "%quelle%\*.*" "%ziel%"  
    echo %quelle%>%DateiMitGemerktemPfad%
)

[ungetestete Skizze]

Gruß
Biber
Member: Netscape
Netscape Aug 17, 2006 at 15:28:47 (UTC)
Goto Top
Noch einmal vielen dank. Hat mir echt geholfen.

Noch eine Frage, gibt es auch eine Statusanzeige des kopiervorganges zum anzeigen?
Member: Biber
Biber Aug 17, 2006 at 16:11:03 (UTC)
Goto Top
Nein netscape,
eine Fortschrittsanzeige oder Vergleichbares gibt es nicht.

Du könntest natürlich beim Kopieren von einzelnen Dateien einen Fortschritt visualisieren:
.. statt der Zeile copy "%quelle%\*.*" "%ziel%" ...

 for %%i in (%quelle%\*.*) do call :copynextfile %%i
goto :eof          
             
:copynextfile
cls
echo Dateien werden kopiert...%punkt%
copy %1 %ziel%
Set punkt=%punkt%.
goto :eof              

..oder eine Anzeige nach dem Muster "Datei nn von 123 wird kopiert"...

Aber das halte ich für zu aufwändig.

Gruß
Biber