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

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: Biber
Biber 16.08.2006 um 13:44:03 Uhr
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
Mitglied: Netscape
Netscape 16.08.2006 um 14:19:00 Uhr
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?
Mitglied: Biber
Biber 16.08.2006 um 14:30:15 Uhr
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
Mitglied: Netscape
Netscape 17.08.2006 um 17:28:47 Uhr
Goto Top
Noch einmal vielen dank. Hat mir echt geholfen.

Noch eine Frage, gibt es auch eine Statusanzeige des kopiervorganges zum anzeigen?
Mitglied: Biber
Biber 17.08.2006 um 18:11:03 Uhr
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