Top-Themen

Aktuelle Themen (A bis Z)

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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell: Trick gesucht zur Beschleunigung eines Dateivergleichs

Mitglied: Herbstengel

Herbstengel (Level 1) - Jetzt verbinden

02.04.2020, aktualisiert 21:43 Uhr, 355 Aufrufe, 9 Kommentare

Hallo Community,

ich habe folgendes Skript, um gleichnamige Dateien in zwei unterschiedlichen Verzeichnissen zu vergleichen. Herzstück ist cmdlet Compare-Object. Funktioniert an sich (Gutfall und Schlechtfall), nur dauert es bei entsprechend großen Dateien eine (ganze) Weile, bis die Abarbeitung zu Ende ist. Leider gibt es bei Compare-Object kein -AsJob, um die Abarbeitung in den Hintergrund zu schieben und um somit gleich ohne nennenswerte Verzögerung mit einer möglichen Nachfolge Powershell-Skriptsequenz parallel zur Hintergrundverarbeitung weiterzumachen. Mit Receive-Job ließe sich ja das Ergebnis auswerten.

Gibt es trotzdem einen Trick, um das zu bewerkstelligen oder gehört mein Code komplett anders aufgebaut?

Viele Grüsse, Roger

Mitglied: SeaStorm
LÖSUNG 02.04.2020, aktualisiert um 22:48 Uhr
Hi

also grundsätzlich würde ich hier vielleicht eher mit Checksummen arbeiten, also mit Get-FileHash . Kommt drauf an ob du die Unterschiede dann aufgelistet haben willst oder nicht. Wenn es dir nur darum geht rauszufinden ob die Dateien gleich sind oder nicht, dann macht eine Checksum wohl mehr sinn.

Ansonsten kannst du natürlich aber alles per Start-Job in Jobs schmeissen. einfach in einer Schleife alle Files im Ordner durchgehen und z.B immer 5 Dateien auf ein mal vergleichen
Bitte warten ..
Mitglied: Pjordorf
02.04.2020 um 22:44 Uhr
Hallo,

Zitat von Herbstengel:
Gibt es trotzdem einen Trick, um das zu bewerkstelligen oder gehört mein Code komplett anders aufgebaut?
Ja, Leistungsfähigere Hardware verwenden die das in deiner gewünschten Sekunde kann. Oder deine Daten soweit runterbrechen das die nicht so lange berechnet werden müssen.

Gruß,
Peter
Bitte warten ..
Mitglied: TK1987
02.04.2020, aktualisiert um 23:21 Uhr
Moin,

Zitat von SeaStorm:
also grundsätzlich würde ich hier vielleicht eher mit Checksummen arbeiten
Entweder das - oder halt die Dateigröße vergleichen. Die Chance, das 2 Dateien mit selbem Namen aufs Byte genau gleich groß sind und dennoch einen unterschiedlichen Inhalt aufweisen ist eben auch nur sehr sehr gering.

Gruß Thomas
Bitte warten ..
Mitglied: StefanKittel
03.04.2020 um 10:26 Uhr
Moin,

das sind zwei aufbauende Themen.
Ich will extra nicht Probleme schreiben.

1. Warten.
Wenn Du nicht warten willst, verwende Multithreading
Wenn Deine Umgebung kein Multithreading kann verwende eine Andere.

Bringt Dir vermutlich aber nichts weil Du nicht 1000 100GB-Dateien gleichzeitig lesen kannst weil die Hardware das nicht mitmacht.
Also warten bis er fertig ist oder und 2. schauen.

2. Vergleichen
Zuerst Dateigröße, Änderungsdatum und Attribute vergleichen.
Wenn hier was abweicht brauchst Du den Rest nicht testen.

Dann Prüfsumme des ersten und letzten MBs erstellen und vergleichen.
Wenn hier was abweicht brauchst Du den Rest nicht testen.

Jetzt die Knuffifrage ob Du in diesem Fall auch die ganze Datei vergleichst oder nicht.
Musst Du entscheiden.

Stefan
Bitte warten ..
Mitglied: Herbstengel
03.04.2020, aktualisiert um 21:30 Uhr
ACHTUNG: Status gelöst stimmt noch nicht !!!

Ich habe das mal mit Start-Job aufgebaut, allerdings stimmt nach Abarbeitung des Hintergrundprozesses im "Schlechtfall" der Inhalt von $FinishLoop nicht: d.h. Wert von $FinishLoop ändert sich nicht auf $true. Woran kann das liegen? Ausserdem läuft mit Start-Job der Vergleich im Hintergrund viel schneller ab als ohne Start-Job...

Grüsse, Roger
Bitte warten ..
Mitglied: Pjordorf
LÖSUNG 03.04.2020 um 21:46 Uhr
Hallo,

Zitat von Herbstengel:
Woran kann das liegen?
Der wird sich nicht ändern da du den nicht änderst, nur abfragst.

Gruß,
Peter
Bitte warten ..
Mitglied: Herbstengel
03.04.2020, aktualisiert um 22:05 Uhr
Hallo Peter,

doch, hier:

Bitte warten ..
Mitglied: Pjordorf
LÖSUNG 03.04.2020 um 23:57 Uhr
Hallo,

Zitat von Herbstengel:
doch, hier:
Dann wird diser Code nie erreicht...Deine IF ist **korrekt?

Gruß,
Peter
Bitte warten ..
Mitglied: Herbstengel
05.04.2020, aktualisiert um 22:07 Uhr
Hallo Peter,

mein Fehler war, dass ich in den scriptblock von Start-Job Parameter von außen bringen muss, damit die interne Verarbeitung
korrekt funktioniert. Mit diesem sepaatem Thread

Powershell: Unterstützung bei Start-Job benötigt im Hinblick auf Ein- und Ausgabeparameter


habe ich mir die Anwendung von Start-Job zunächst klar gemacht und dann auf diese Anwendung angewandt.

Ergebnis: s.u.

Thread nun hiermit wirklich abgeschlossen



Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Dateivergleich: Pfad auslesen
gelöst Frage von icepick1661Batch & Shell7 Kommentare

Hallo, ich bin neu hier, grüße also alle; ich habe ein Batch-Problem, mit dem ich trotz langer Googelei einfach ...

Windows Server
DirectDraw-Beschleunigung über RDP?
Frage von DerWoWussteWindows Server3 Kommentare

Moin Kollegen. Wir haben einen virtualisierten Terminalserver, der einfache 3D-Entwurfsprogramme hostet. Es ist ein Server 2008 und dieser wird ...

Batch & Shell

PowerShell-Befehl zum mounten einer tib Datei gesucht

Frage von KoopaaaBatch & Shell7 Kommentare

Hallo, Ich weiß nicht ob ich hier richtig bin oder ob es überhaupt möglich ist, aber ich möchte gerne ...

Batch & Shell

Remote Powershell ausführen wie lokale Powershell

gelöst Frage von IngenieursBatch & Shell2 Kommentare

Hallo vielleicht ist der Titel nicht ganz deutlich formuliert. Ich möchte wissen ob es eine Möglichkeit gibt Remote Powershell ...

Neue Wissensbeiträge
Windows Netzwerk

SCOM ( System Center Operations Manager ) um eine E-Mailschnittstelle erweitern

Anleitung von Juanito vor 2 StundenWindows Netzwerk

Einleitung System Center Operations Manager (SCOM) ist Microsoft's Lösung zum Überwachen von Servern. Dazu zählt die generelle Erreichbarkeit, Festplattenspeicher, ...

Humor (lol)
BioShield gegen 5G
Information von magicteddy vor 1 TagHumor (lol)3 Kommentare

Moin wer sich gegen die hochgefährlichen 5G schützen möchte wird hier fündig: 5GBioShield "gegen 5G-Strahlung" Ich glaube, ich sollte ...

Windows Server

ScheduledTasks mit einem Group-Managed-Service-Account (GMSA) ausführen

Anleitung von ToniHo vor 1 TagWindows Server

Hallo zusammen, wer schonmal versucht hat ein Group-Managed-Service-Account (GMSA) auf einem bestehenden ScheduledTask einzutragen, ist an der GUI vermutlich ...

Humor (lol)
Anti 5G USB Stick
Information von Ex0r2k16 vor 1 TagHumor (lol)14 Kommentare

Perfekt für den Freitag, findet sich hier ein Businesspartner der mit mir zusammen einen Anti 6G Esoterik Stick rausbringt? ...

Heiß diskutierte Inhalte
Windows 10
Win 10 Problem Intergeschwindigkeit aber LAN OK
Frage von helpmikeWindows 1021 Kommentare

Hallo, versuche mal das Problem zu beschreiben. Der PC (i5 9600 / 16 GB / H370M / Intel 1 ...

Festplatten, SSD, Raid
WD My Book Platine tauschen?
gelöst Frage von WandaStaabFestplatten, SSD, Raid19 Kommentare

Schönen guten Abend! Eine Bekannte bat mich, ihre externe Festplatte, eine WD My Book 4TB (wdbfjk0040hbk-04), anzuschauen, die sich ...

Router & Routing
Portfreigabe NAS Fritzbox
gelöst Frage von dbox3Router & Routing14 Kommentare

Hallo zusammen, ich habe ein Netzwerk eingerichtet (s.Bild) bei dem ich auf dem NAS der FB7490 mit der IP ...

Exchange Server
Windows Exchange Server 2010 ablösen durch neuen Exchange Server 2016 - Was beachten
Frage von server0815Exchange Server14 Kommentare

Hallo, ich habe die Aufgabe bekommen unseren nun schon etwas in die Jahre gekommenen Exchange Server 2010 (Version 14.03.0487.000) ...