Ergebnis der fsize-Abfrage
Hallo,
ich durchsuche das Dateisystem nach Dateien bestimmter Größe
und das Ergebnis, die Datei LargeFilesList.txt ist in einem Ordner, wo sich die gefundene Dateien befinden, gespeichert. In meinem Fall ist es dieser Ordner
Welche Erklärung gibt es dafür, dass die Datei in diesem und nicht in einem anderen Ordner erstellt wurde? Ich habe erwartet, dass das Ergebnis im Ordner
gespeichert wird. echo %path% liefert mir dieses Ergebnis:
gruss, itebob
Windows 10 Pro, Version 22H2
ich durchsuche das Dateisystem nach Dateien bestimmter Größe
C:\Users\UserName\AppData\Local\Google\Chrome Beta>forfiles /S /M * /C "cmd /c if @fsize GEQ 1048576 echo @path > LargeFilesList.txt"
C:\Users\UserName\AppData\Local\Google\Chrome Beta\User Data\Default\Service Worker\CacheStorage\f2521ae53c6200af9e4347a9f2a9d17dd8c34cfb\a2f2801c-ccfb-482c-b364-f46861997a4e
C:\Users\UserName\AppData\Local\Google\Chrome Beta
C:\Users\UserName\AppData\Local\Google\Chrome Beta>echo %path%
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\adminName\AppData\Local\Microsoft\WindowsApps
gruss, itebob
Windows 10 Pro, Version 22H2
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6955230711
Url: https://administrator.de/contentid/6955230711
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
6 Kommentare
Neuester Kommentar
Hi,
die Datei wird im letzten durchsuchten Ordner abgelegt.
Wie wäre es mit PowerShell?
Nur die Dateinamen:
Dateinamen und Größe:
-Thomas
die Datei wird im letzten durchsuchten Ordner abgelegt.
Wie wäre es mit PowerShell?
Nur die Dateinamen:
Get-ChildItem -Recurse | Where-Object Length -ge 1MB | Select-Object -ExpandProperty FullName | Out-File LargeFilesList.txt
Dateinamen und Größe:
Get-ChildItem -Recurse | Where-Object Length -ge 1MB | Format-Table FullName,length | Out-File LargeFilesList.txt
-Thomas
Welche Erklärung gibt es dafür, dass die Datei in diesem und nicht in einem anderen Ordner erstellt wurde?
Die Erklärung ist einfach. Der Befehl im Parameter /C macht quasi für jede Datei eine CMD auf deren Arbeitsverzeichnis das der gefundenen Datei ist, ergo landet alles was darin ohne absolute Pfadangabe angegeben ist im Arbeitsverzeichnis, in dem Fall ist es das der gefundenen Dateien.Das kannst du einfach umgehen indem du den Redirect einfach außerhalb des Befehls platzierst
forfiles /S /M * /C "cmd /c if @fsize GEQ 1048576 echo @path" >LargeFilesList.txt
Mit Größenvergleichen in der CMD wäre ich aber sehr vorsichtig, denn das supported diese nur bis 2GB Größe (2147483647 Bytes).
https://stackoverflow.com/questions/9116365/windows-batch-file-if-failur ...
Also besser du nutzt wie @3063370895 oben geschrieben hat die PS wenn es um größere Vergleiche gehen sollte.
Cheers briggs
Wenn für jede gefundene Datei extra ein cmd Prozess aufgehen muss, verständlich . Wird endlich Zeit für den wohlverdienten Batch Ruhestand ... ist aber leider wie ein Pickel am Hintern der hier immer wieder mal kommt
Zitat von @itebob:
Dateinamen werden angezeigt. Aber ohne Dateigröße. Und Pfade länger als 112 Zeichen werden abgeschnitten.
Kein Thema als CSV ...Dateinamen werden angezeigt. Aber ohne Dateigröße. Und Pfade länger als 112 Zeichen werden abgeschnitten.
Get-ChildItem -Recurse -File | Where-Object Length -ge 1MB | select Fullname,Length | export-csv '.\LargeFilesList .csv' -Delimiter ";" -NoType -Encoding UTF8
Get-ChildItem -Recurse -File | Where-Object Length -ge 1MB | format-table Fullname,Length -AutoSize -Wrap | out-string | Out-File LargeFilesList.txt