bbuser
Goto Top

Archiv Flag aller Dateien in definierten Pfaden lesen und die Pfade incl. Dateinamen in ein Log schreiben

Ziel ist: 7zip soll anschliessend in das log schauen und alle dort gelisteten Dateien packen.

Hallo,

ich beziehen mich mit dieser Frage auf folgenden Thread: Dynamische Liste aus INI lesen und die Werte für Variablen nutzen

Ich arbeite derzeit an dem dort geposteten Backupscript, möchte den Thread aber nicht mit anderen Fragen mischen. Hoffe das ist okay.

Zum Thema:

Ich habe also eine .ini Datei in der definierte Pfade stehen.

Diese sieht wie folgt aus:

[Gateway]
Standard_Gateway=>192.168.1.1

[Backup]
Backup_Directory=>C:\ziel
Backup_Command=>xcopy /s /c /d /e /h /i /r /y

[Directories to backup]
Folder=>C:\source1
Folder=>C:\source3
Folder=>C:\source2

Bevor nun mein xcopy irgendwelche Dateien wohin kopiert möchte ich in die gelisteten Ordner schauen und alle dort enthaltenen Dateien (und wenn möglich deren Unterordner, aber das ist zweitrangig) auf ihr Archivflag hin untersuchen. Alle Dateien, bei denen das Archivflag gesetzt wurde (Aufgrund von Änderungen etc.) sollen nun vom 7Zip in ein Archiv gepackt werden. Dieses Archiv wandert später auf ein Netzlaufwerk.

Derzeit stehen ich hier:

for /f "tokens=2 delims=>" %%i in ('set^|Find "Folder"import.ini') do call :GETATTRIB "%%i"

:GETATTRIB
set "Pfad=%~1"

cd %Pfad%
dir /b /A:A >> liste_mit_dateien_welche_ein A_Flag_haben.log

In der import.ini stehen die zu sichernden Pfade. Das ganze Funktioniert soweit, dass ich im ersten Ordner der Liste das .log mit den Dateien, welche ein A Flag haben, erzeugen kann. Diese Liste sollte jedoch im Arbeitsverzeichnis der .bat liegen und sie sollte die Pfade+dateinamen enthalten.

Bsp.:

C:\source\datei1
C:\source\datei2
... usw.


Ein weiterer Fehler den ich leider nicht lösen kann ist, dass in den weiteren Ordnern aus der Liste gar kein .log erzeugt wird.

Wie löse ich dieses Problem?

Der 7zip befehl sieht übrigens so aus:

7z a -t7z %BACKUPZIEL%%filename% -m0=BCJ -m1=LZMA:d=21 -ms -mmt @liste_mit_dateien_welche_ein A_Flag_haben.log


Grüße face-smile

Content-ID: 106405

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

Ausgedruckt am: 23.11.2024 um 11:11 Uhr

bastla
bastla 19.01.2009 um 00:39:54 Uhr
Goto Top
Hallo BBUser!

Nur ein kurzer Tipp: Versuch es ohne ein "cd" mit
xcopy /L /A /Y "%Pfad%"|findstr /v /c:"Datei(en) kopiert">"%Pfad%\liste_mit_dateien_welche_ein A_Flag_haben.log"
Ansonsten: Volle Pfadangaben erhältst Du bei "dir /b /s" ...

Grüße
bastla
BBUser
BBUser 19.01.2009 um 10:01:43 Uhr
Goto Top
Danke. Habe versucht es einzubauen.

7Zip schmeist aber erstmal nen Fehler:

Error:
Duplicate filename:
Dateiname
Dateiname

Aufruf:
7z a -t7z %filename% -m0=BCJ -m1=LZMA:d=21 -ms -mmt @liste_mit_dateien_welche_ein_a_flag_haben.log

In der Log sind die Pfade schön aufgelistet.

Bsp.:

C:\Scripte\datei.txt
C:\Scripte\datei2.txt
C:\Scripte\ordner\datei.exe
C:\Scripte\ordner\datei2.exe

Gibt es eine Möglichkeit, das 7Zip die Struktur so einfach in das Archiv packt und sich nicht daran stört, dass in der Liste Dateinamen doppelt auftauchen? Spezielle Schalter sind mir in der Hilfedatei nicht sofort ins Auge gesprungen.

Gruss