User Ordner in Batch Kopieren?
Hey zusammen, ich bin mir gerade just for Fun ein kleines Backup Tool in Batch an zusammen schnippeln, jetzt bin ich aber an dem Problem angelangt das ich keine Ahnung hab wie ich einen User Ordner Kopierern kann
(der Dateipfad in meinem Fall ist C:\Users\LPRG-Developers und soll nach B:\ kopiert werden)
ebenfalls weil ich gerade schon am fragen bin interessiert es mich auch ob man evtl dort eine variable als Dateipfad eingeben kann so das man vorher einen Ordner aussuchen kann von dem ein Backup erstellt wird
danke schon mal an jeden der ne gute Möglichkeit schreibt mir bei meinem Problem zu helfen
lg Kiba ^^
4 Antworten
Hier mal ein kurzes Skript, in dem es möglich ist, den zu sichernden Ordner zu ändern:
@echo off
set "src=%userprofile%"
set "dst=B:"
echo.Zu sichernden Ordner festlegen.
echo.Der Standardwert ist %src%. Bestaetigen mit [enter].
set /p "src= > "
xcopy "%src%" "%dst%" /E
pause
Dabei wird der Inhalt des Verzeichnisses %src% direkt in das Verzeichnis %dst% kopiert. Du solltest also eventuell als Ziel einen Pfad wie "B:\Backup" oder "B:\%username%" wählen.
Schau dir am besten die Doc zu xcopy an fürs kopieren/backupen.
Variablen werden mit
Set vari=test
Echo %vari%
Initiiert und ausgegeben.
Kannst du, wenn du den Quellpfad zuvor in die Variable %vari% schreibst. Wenn du steuern möchtest, was du kopierst, würde ich das vorherige Beachten der Dokumentarion zu xcopy erneut empfehlen und im Minimum die Parameter /s und /e anfügen.
Set vari=C:\Users\...
Xcopy %vari% b: /s /e
S für unterverzeichnisse
E für leere Verzeichnisse
Als Beispiel
ohne viel Worte DropTargets: Ziehe den/die Ordner einfach drauf...
@echo off
rem Ziellaufwerk:
set "destinationDrive=B:"
if "%~n1"=="" (
echo Bitte einen Ordner auf die Batch "%~nx0" ziehen!
Timeout 5 >nul
exit /b
)
if not exist "%~f1\*" (
color 4f
echo "%~f1" ist kein Ordner!
Timeout 5 >nul
exit /b
)
echo Ordner "%~f1" nach "%destinationDrive%\%~nx1" kopiern?
choice
if %ErrorLevel% equ 2 goto :TueNix
xcopy /e "%~f1\*" "%destinationDrive%\%~nx1\*"
:TueNix
pause
für mehrere Dropordner:
@echo off
color 1f
rem Ziellaufwerk:
set "destinationDrive=B:"
if "%~n1"=="" (
echo Bitte einen oder mehr Ordner auf die Batch "%~nx0" ziehen!
Timeout 5 >nul
exit /b
)
echo Die Ordner ## %* ## nach "%destinationDrive%" kopiern?
choice
if %ErrorLevel% equ 2 goto :TueNix
for %%a in (%*) do (
rem ist das ein Ordner? (Ordner haben immer Dateien unter sich, auch wenn die nicht sieht)
if exist "%%~fa\*" (
xcopy /e "%%~fa\*" "%destinationDrive%\%%~nxa\*"
) else (
rem wenn Datei:
color 4f
echo "%%~fa" ist kein Ordner! ...nicht kopiert!!!!
Timeout 2 >nul
color 1f
)
)
:TueNix
pause
was du in CMD ausführen würden in eine Text Datei kopieren. die Endung von txt auf BAT ändern und dann in den Autostart deines Startmenüs Kopieren.
Viel Erfolg!
das war nicht die frage xD
ich brauche eher hilfe dabei das ich nicht weiß wie ich den ordner kopieren kann weil wenn ich Copy C:\Users\LPRG-Developers B:\ ausführe kopiert er nur die datein im ordner, aber keine anderen ordner und verknüpfungen
also kann ich dann z.B. xcopy %vari% B:\ machen?