Benötige Hilfestellung beim abarbeiten meherer Dateien durch eine For Schleife
Hallo,
folgendes Problem. Ich erstelle mit einem Skript ein Backup einer Datenbank. Die Archive heissen dann: archiv_01_DatumDesBackups.zip, archiv_02_DatumDesBackups.zip...
Ich möchte jetzt gerne eine Batch Datei schreiben die jedes archiv einmal anfasst und mir mittels einer if Abfrage sagt ob die Datei innerhalb der Toleranz liegt (zwischen 3 und 5 MB).
Wie kann ich das am besten umsetzen?
folgendes Problem. Ich erstelle mit einem Skript ein Backup einer Datenbank. Die Archive heissen dann: archiv_01_DatumDesBackups.zip, archiv_02_DatumDesBackups.zip...
Ich möchte jetzt gerne eine Batch Datei schreiben die jedes archiv einmal anfasst und mir mittels einer if Abfrage sagt ob die Datei innerhalb der Toleranz liegt (zwischen 3 und 5 MB).
Wie kann ich das am besten umsetzen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 278483
Url: https://administrator.de/contentid/278483
Ausgedruckt am: 26.11.2024 um 15:11 Uhr
1 Kommentar
Hallo iGordon,
mit Batch könnte das so aussehen:
Oder alternativ mit Powershell, bekommst du so alle Dateien die in der Toleranz liegen
oder alle die außerhalb der Toleranz liegen:
Kombiniert beispielsweise so:
Je nach Anforderung natürlich entsprechend anpassbar. Die Möglichkeiten sind da vielfältig.
Grüße Uwe
mit Batch könnte das so aussehen:
@echo off
set "backupordner=D:\Backup"
for %%a in ("%backupordner%\*.zip") DO @(
if %%~za GTR 3145728 (
if %%~za LSS 5242880 (
echo Datei "%%a" ist OK !
) else (
echo Datei "%%a" ist groeßer als 5MB
)
) else (
echo Datei "%%a" ist kleiner als 3MB
)
)
Oder alternativ mit Powershell, bekommst du so alle Dateien die in der Toleranz liegen
gci 'D:\Backup\*.zip' | ?{$_.Length -ge 3MB -and $_.Length -le 5MB}
gci 'D:\Backup\*.zip' | ?{$_.Length -lt 3MB -or $_.Length -gt 5MB}
$files = gci 'D:\Backup\*.zip' | group {$_.Length -le 5MB -and $_.Length -ge 3MB}
write-host "Folgende Dateien entsprechen den Anforderungen >= 3MB und <=5 MB `n$("="*80)" -F Green
$files | ?{$_.Name -eq $true} | select -Expand Group | select -Expand Fullname
write-host "`nFolgende Dateien entsprechen nicht den Anforderungen `n$("="*80)" -F Yellow
$files | ?{$_.Name -eq $false} | select -Expand Group | select -Expand Fullname
Grüße Uwe