Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batchskript zum Datenbackup mit Ordnerstruktur

Frage Entwicklung Batch & Shell

Mitglied: Netscape

Netscape (Level 2) - Jetzt verbinden

30.01.2007, aktualisiert 02.02.2007, 3502 Aufrufe, 9 Kommentare

Hi,
habe noch ein Problem mit einem Skript.

Hier der Original Thread:
http://www.administrator.de/index.php?content=86549656eef6831189766eb3e ...

Biber hat mir damit schon sehr geholfen, allerdings hab ich noch Probleme damit. Das Skript will irgendwie nicht laufen.

Original:
- >for /f "delims=" %i in ('dir /a:d /s /b "D:\*old*"') do @echo "%~nxi"|find /i "old">nul && @Xcopy /y "%~i\*.*" "x:\Archiv%~pi"

von mir verändert:
- >for /f "delims=" %i in ('dir /a:d /s /b "%laufwerk%\%filter%"') do @echo "%~nxi"|find /i "%filter%">nul && @Xcopy /y "%~i\*.*" "x:\Archiv%~pi"

Ich habe noch die Variablen Laufwerk und Filter eingebaut, damit man auch andere Ordner wähln kann. Allerdings will es nicht so ganz.
Mitglied: Biber
30.01.2007 um 18:33 Uhr
Moin Netscape,

ich lege es mal als Batch an, dann wird es lesbarer (hoffe ich).

Ich fang mal mit der oberen Zeile an [am CMD-Prompt:]
01.
for /f "delims=" %i in ('dir /a:d /s /b "D:\*old*"') do @echo "%~nxi"|find /i "old">nul && @Xcopy /y "%~i\*.*" "x:\Archiv%~pi"
... wäre als (formatierter) Batch-Oneliner mit einem ECHO zum Testen:
01.
::----------DoXcopyAllWithOld.bat 
02.
@for /f "delims=" %%i in ('dir /a:d /s /b "D:\*old*"') do @( 
03.
                   echo "%%~nxi"|find /i "old">nul && @<b>ECHO</b> Xcopy /y "%%~i\*.*" "x:\Archiv%%~pi" 
04.
)
Wenn wir den noch umbauen, dass der als
- Parameter %1 Startlaufwerk/Startpfad annimmt und als
- Parameter %2 den Teilstring "old" (oder was auch immer), der im Ordnernamen enthalten sein soll
01.
::----------DoXcopyWith.bat 
02.
@for /f "delims=" %%i in ('dir /a:d /s /b "%1\*%2*"') do @( 
03.
                   echo "%%~nxi"|find /i "%2">nul && @<b>ECHO</b> Xcopy /y "%%~i\*.*" "x:\Archiv%%~pi" 
04.
)
So weit, so ungetestet.

HTH
Biber
Bitte warten ..
Mitglied: Netscape
30.01.2007 um 20:25 Uhr
Also soweit läuft das Skript, allerdings sagt er mir, dass die Dateien kopiert wurden, wenn ich aber in dem Ornder nachschaue ist nix drin.?
Bitte warten ..
Mitglied: Biber
30.01.2007 um 21:07 Uhr
Hmmm... und wenn Du das zum Testen eingefügte fett gedruckte ECHO entfernst?
Bitte warten ..
Mitglied: Netscape
30.01.2007 um 21:22 Uhr
Ok, jetzt funktionierts. Nur noch eine Kleinigkeit.

Wie muss die %%~pi Variable lauten, damit er auch den Old Ordner kopiert?

Es wird zwar alles kopiert, aber den Old Ordner verwirft er.

Soll heißen:

Ordner1--->Ordner2--->Old

inhalt wird an backupfad kopiert

Backupordner\Ordner1-->Ordner2\inhalt von Old
Bitte warten ..
Mitglied: Biber
30.01.2007 um 22:07 Uhr
Dann müsstest Du ändern:

STREICHE: ....Xcopy /y "%%~i\*.*" "x:\Archiv%%~pi"
SETZE: ....Xcopy /y "%%~dpi" "x:\Archiv%%~pi\"

[ungetestet]

HTH Biber

P.S. Wäre nicht überhaupt ein MOVE besser als ein Kopieren?
Bitte warten ..
Mitglied: Netscape
30.01.2007 um 22:19 Uhr
Kannst du mir den unterschied zwischen

"%%~i\*.*" & "%%~dpi"

erklären?

Mit Move müsste das dann so lauten oder?
Move /y "%%~dpi" "x:\Archiv%%~pi\"

Eine andere Möglichkeit wäre auch noch ein setzen des Archiv Attributs. Das wäre wesentlich genauer oder?
Bitte warten ..
Mitglied: Biber
31.01.2007 um 11:53 Uhr
Moin NetScape,

Wenn der Ordner "D:\test\bla\blubb\old27" heißt:

"%%~i\*.*" --------> würde expandieren zu vollständigem Ordner-Pfad+"\*.*" i.e "D:\test\bla\blubb\old27\*.*"


"%%~dpi" --> würde expandieren zu D=Drive + p=Pfad des Ordner-Parent-Namens i.e "D:\test\bla\blubb"

Das Move demnach würde expandieren zu:
Move /y "%%~dpi" "x:\Archiv%%~pi\" ----------->
Move /y "D:\test\bla\blubb" "x:\Archiv\test\bla\blubb"

Richtiger wäre also:
Move /y "%%~dpnxi" "x:\Archiv%%~pnxi\" ----------->
Dieses Move würde expandieren zu:
Move /y "D:\test\bla\blubb\old27" "x:\Archiv\test\bla\blubb\old27"


Gruß
Biber
Bitte warten ..
Mitglied: Netscape
01.02.2007 um 15:04 Uhr
Hi,

dies hier funktioniert leider nicht. Da kopiert er dann nichts mehr.

STREICHE: ....Xcopy /y "%%~i\*.*" "x:\Archiv%%~pi"
SETZE: ....Xcopy /y "%%~dpi" "x:\Archiv%%~pi\"

Hab auch schon probiert nur den Pfad mitzunehmen

Xcopy /y "%%~pi" "x:\Archiv%%~pi\"

aber das geht auch nicht.
Bitte warten ..
Mitglied: Netscape
02.02.2007 um 15:47 Uhr
Ok,
hab´s hinbekommen. musste nur das > nul vor dem Xcopy entfernen. Dann hat er den Old Ordner miterstellt.

Vielen Dank an Biber, der sich wie immer sehr bemüht hat und mir sehr geholfen hat.

Danke Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...