Das Get-Content
Cmdlet mit den Schaltern -Encoding Byte
und zeigt -Tail
Ihnen, gegen was Sie in PowerShell abgleichen möchten. Angenommen, hier versagt es Ihnen.
Suchen Sie die Sequenz in Dateien mit dem HEX-Editor
Vor ein paar Tagen habe ich mich entschlossen, meine externe 2-TB-Festplatte mit Auslogics Defragmenter zu defragmentieren und zu optimieren. Nun ein kleiner Hintergrund hier. Die von mir defragmentierte Partition war eine 1,8-TB-Partition, die mit VeraCrypt, einem Zweig von TrueCrypt, verschlüsselt wurde. Nachdem die Defragmentierung abgeschlossen war, stellte ich fest, dass mehrere Dateien beschädigt waren. Die Dateien, in denen ich die Beschädigung feststellen konnte, waren alle komprimierte Dateien, die mit der Standardkomprimierung von Windows 10 komprimiert wurden. Ich habe die Dateien in WinHex geöffnet, und ich habe eine merkwürdige Sache gesehen: Das Ende all dieser beschädigten Dateien hatte einen Block von "DF DF DF" -Sequenz. Hier ist der Screenshot des Problems.Bitte beachten Sie, dass das Bild zwar eine Bogendatei ist, diese jedoch durch die Windows-Komprimierung komprimiert wurde. Das Merkwürdige ist, dass, obwohl die Dateien diese DF-Chunks hatten, eine binäre Suche der gemounteten Partition keine solche Sequenz ergab.
Nun möchte ich eine Batch-Datei erstellen, die:
- Erstellen Sie eine Liste komprimierter Dateien auf der Festplatte
- Überprüfen Sie die DF-Sequenz am Ende des binären Inhalts jeder Datei
- Erstellen Sie eine Liste aller betroffenen Dateien
Ich habe versucht, das Problem mit dem Powershell-Skript zu lösen, war aber nicht erfolgreich. Ich denke, es wäre viel einfacher, das Problem in der Linux-Plattform anzugehen, aber ich habe keine Ahnung, wie es geht. Jede Hilfe oder Anregung wäre sehr dankbar.
Zusätzliche Anmerkung: Viele haben gesagt, dass die binäre Suche der gemounteten Partition nicht erfolgreich war, da die Partition verschlüsselt ist. Das ist falsch. Ich habe die Partition vor der Suche gemountet. Daher wurde nicht nach RAW-Daten der Festplatte gesucht, sondern nach den Daten der unverschlüsselten Partition.
Zusätzliche Details: Betriebssystem: Windows 10 Professional X64 / Ubuntu 14.04 x64 Dateisystem: NTFS
2 Antworten auf die Frage
Get-ChildItem -recurse -file -Attributes Compressed -path $Path | Foreach-Object -Process { if ((Get-Content -Tail 1 -encoding String -literalpath $_.fullname).endswith("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß")) { Write-Output "$($_.Name) `t $($_.FullName) `t $($_.length)"} }
Einfach ein Liner. Grundsätzlich basiert auf dem, was kRush gesagt hat. Ersetzen Sie $ Path durch den richtigen Pfad.
Verwandte Probleme
-
12
Warum wird der Ordner / winsxs so groß und kann er verkleinert werden?
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
2
Erhöhte Berechtigungen für Startanwendungen in Windows?
-
14
PDF Viewer unter Windows
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
7
Welche Windows-Dienste kann ich sicher deaktivieren?
-
8
Firefox PDF-Plugin zum Anzeigen von PDF-Dateien im Browser unter Windows
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
1
Windows verliert das Bildschirmlayout
-
1
Gibt es eine Möglichkeit, Installationen / Updates zu verhindern, die meine Festplatte mit kryptisch...