มียูทิลิตีบรรทัดคำสั่งของ Windows เพื่อแสดงรายการไฟล์ที่ใหญ่ที่สุดที่มีขนาดเกินขนาดที่ระบุในไดเรกทอรีย่อยหรือไม่?


17

ต้องการให้สามารถค้นหาเส้นทางแบบเต็มของไฟล์ในแผนผังไดเรกทอรีที่มีขนาดเกินขนาดที่กำหนด (เช่น 10MB)

ขณะนี้ทราบถึงDiruseของ Microsoft (ส่วนหนึ่งของเครื่องมือสนับสนุน Windows XP Service Pack 2 ) ซึ่งทำสิ่งที่ฉันต้องการยกเว้นจะแสดงเฉพาะขนาดไดเรกทอรีแทนที่จะเป็นไฟล์

คำตอบ:


29
forfiles /P D:\ /M *.* /S /D +"01/17/2012"  /C "cmd /c if @fsize gtr 209715200 echo @path @fsize @fdate @ftime"

จะสแกน D: \ และไดเรกทอรีย่อยค้นหาไฟล์ทั้งหมดที่มีวันที่แก้ไขล่าสุดมากกว่า "17-JAN-2012" และขนาดที่ใหญ่กว่าหรือเท่ากับ 200MB แล้วพิมพ์รายละเอียด

forfiles รวมอยู่ใน Windows Servers บางตัว แต่ไม่ใช่โดยค่าเริ่มต้นใน Windows XP คุณสามารถแยกมันได้จากดาวน์โหลด "Windows Server 2003 Resource Kit" ที่http://www.microsoft.com/download/en/details.aspx?id=17657 (แม้ว่าจะระบุว่าเป็น Windows Server ก็จะทำงานบน Win XP ไม่มีปัญหา)


สุดยอด - นี่คือสิ่งที่ฉันต้องการ (ทันทีที่ฉันกำหนดวันที่สำหรับสหราชอาณาจักร 17/01/2012) ขอบคุณ
Umber Ferrule

6

ดูเหมือนว่างานของ PowerShell

ได้รับ childitem

นำทางไปยังไดเรกทอรีที่เป็นปัญหาตรวจสอบคุณสมบัติด้วย:

get-childitem | get-member

ความยาวและ FullName ดูน่าสนใจเช่น:

get-childitem |ft fullname, length -auto

เมื่อคุณเข้าใจพื้นฐานแล้วให้ลองกรองด้วยคำสั่ง where

get-childitem | where-object {$_.length -gt 10000} |ft fullname, length -auto

ทดลองกับ 100,000


ใช้ Get-ChildItem -recurse เพื่อค้นหาแบบเรียกซ้ำ
themadmax

3

พอร์ตยูทิลิตี้ Linux ที่UnxUtilsมีคำสั่งLinux find

คุณควรเปลี่ยนชื่อ find.exe เป็นอย่างอื่นเช่น xfind.exe เนื่องจาก find เป็นฟังก์ชันในตัวในพรอมต์คำสั่งของ Windows จากนั้นคุณสามารถค้นหาไฟล์ทั้งหมดที่มีขนาดใหญ่กว่า 1000000 ไบต์โดย:

ไดเรกทอรี xfind - ขนาด +1000000 - พิมพ์

นี่คือเอกสารสำหรับคำสั่ง Linux ที่พบแต่ฉันไม่ทราบว่ามันถูกนำไปใช้ใน UnxUtils และรุ่นใดของการค้นหา


ฉันเชื่อว่า GnuWin32 เป็นปัจจุบันมากขึ้น: gnuwin32.sourceforge.net ... และมี Cygwin เสมอ: cygwin.com
quack quixote

@ ~ quack: ถูกต้องเฉพาะแพ็คเกจ FileUtils ใน GnuWin32 ที่ค่อนข้างซับซ้อนในการติดตั้งต้องใช้ไฟล์บางไฟล์
harrymc

ยุติธรรมพอสมควร ฉันเป็นผู้ใช้ cygwin เป็นการส่วนตัว และฉันมักจะชอบที่ทันสมัยกว่าง่ายต่อการติดตั้ง แต่ขอบคุณที่อธิบายเหตุผลของคุณ
ต้มตุ๋น Quixote

2

ใช้ Command Console LE (ซึ่งฉันขอแนะนำเร็ว ๆ นี้) การแทนที่ cmd.exe ฟรีด้วยคุณสมบัติพิเศษมากมายมีคำสั่งสำหรับสิ่งนั้น:PDIR

pdir /s /(fpn z) /[s10485760,]
  • /s หมายถึงการเรียกใช้ซ้ำเรียกใช้คำสั่งจากไดเรกทอรีที่คุณต้องการค้นหา
  • /(fpn z) เป็นรูปแบบสำหรับแสดงผลลัพธ์ที่นี่: fullpathfullname size
  • /[s10485760,] หมายถึง size = 10 MB หรือใหญ่กว่า

1

คำสั่ง find ของcygwin Utilities ทำสิ่งนี้ สำหรับความต้องการของคุณ

ค้นหาเส้นทางแบบเต็มของไฟล์ในแผนผังไดเรกทอรีที่มีขนาดเกินขนาดที่กำหนด (เช่น 10MB)

สิ่งนี้ให้ผลลัพธ์:

หา - ขนาด + 10M- พิมพ์ f -printf "% p% s \ n"

-size +10Mช่วยให้คุณ "วัตถุ" ใหญ่กว่า 10 เมกะไบต์

-type f ให้ไฟล์คุณเท่านั้น

-printfพิมพ์ไฟล์ที่พบ%pคือพา ธ%sคือขนาด (เป็นไบต์) และ\nเป็นบรรทัดใหม่


1

ฉันเพิ่งเกิดขึ้นกับเครื่องมือบรรทัดคำสั่งDisksumซึ่งดูเหมือนจะคล้ายกับdiruseแต่ให้เอาต์พุตสองรูปแบบ:

  • จัดเรียงตามจำนวนไฟล์ต่อไดเรกทอรี (น้อยไปหามาก)
  • จัดเรียงตามขนาดไดเรกทอรี (น้อยไปหามาก)

1

ฉันเชื่อว่าการใช้โซลูชันนี้แม่นยำยิ่งขึ้นพร้อมคำอธิบาย:

ดาวน์โหลดบรรทัดคำสั่งที่ปฏิบัติการได้ sfk.exe ที่ http://sourceforge.net/projects/swissfileknife/files/

ใช้มันแบบนี้

skf.exe list -big

ตัวอย่างเอาต์พุต (ตัวย่อ):

[listing 50 of 78 files by size:]
        3951 mens\noname_30.mht
        3996 mens\noname_14.mht
        3996 mens\noname_25.mht
        4060 mens\noname_24.mht
        4263 mens\noname_31.mht
        4701 mens\noname_1.mht
       14568 Thumbnail Restore.zip
       45056 netmeter.exe
     [...]
     12337752 rktools.exe
     16826024 sp35378.exe
     16926496 jre-6u30-windows-i586.exe
     19480227 SugarCE-6.2.4.zip
     21073936 vlc-1.1.11-win32.exe
     22083184 EasyPHP-5.3.8.1-setup.exe
     25517642 MPSOFTWARE.phpDesigner.v8.0.0.145-CRD.rar
     31085033 phpdesigner8usb.zip
     48835640 netbeans 7.exe
     58900704 ZendServer-CE-php-5.2.17-5.6.0-Windows_x86.exe    
     491538432 53400105.iso

หากคุณต้องการไฟล์ที่ใหญ่กว่า 10 อันดับแรกให้ใช้:

skf.exe list -big=10

คุณสามารถปรับแต่งเพิ่มเติมตามคำแนะนำจาก: http://stahlworks.com/dev/index.php?tool=list


คำตอบที่ยอดเยี่ยมฉันอ้างอิงได้ที่นี่; softwarerecs.stackexchange.com/questions/30824/…
DankyNanky

-2

ฉันรู้ว่าคำถามนั้นเกี่ยวกับบรรทัดคำสั่ง แต่คำถามนี้ยังคงเกิดขึ้นใน Google ดังนั้นเพิ่มอีกวิธีง่ายๆ - ผ่าน Explorer

  1. เปิดที่ตั้ง (ดิสก์หรือโฟลเดอร์) ที่คุณต้องการค้นหาไฟล์ขนาดใหญ่ใน Windows Explorer
  2. ในประเภทช่องค้นหาด้านบนขวา "ขนาด: gigantic" (ช่องจะแนะนำไวยากรณ์และตัวเลือกอื่น ๆ ที่เป็นไปได้โดยอัตโนมัติ)

คำถามคือการหาคำตอบของบรรทัดคำสั่ง
จอห์

นี่เป็นคำตอบที่ดีและถูกต้อง ไม่ควรลงคะแนน
zar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.