ฉันพยายามที่จะคิดออกรหัสสำหรับชุดไฟล์ (Windows) ที่ในโฟลเดอร์ที่ระบุซ้ำลบทุกอย่างยกเว้นไฟล์ที่มีนามสกุลบางอย่าง (เช่น.mkv
และ.nfo
)?
บางอย่างเช่นนี้ แต่สำหรับข้างต้น
def deleteRootFolder = tryQuietly{ root.toBoolean() }
/*
* Delete orphaned "clutter" files like nfo, jpg, etc and sample files
*/
def isClutter(f) {
def exts = tryQuietly{ exts } ?: /jpg|jpeg|png|gif|nfo|xml|htm|html|log|srt|sub|idx|md5|sfv|txt|rtf|url|db|dna|log/
def terms = tryQuietly{ terms } ?: /sample|trailer|extras|deleted.scenes|music.video|scrapbook/
def maxsize = tryQuietly{ maxsize as Long } ?: 100 * 1024 * 1024
// path contains blacklisted terms or extension is blacklisted
return (f.extension ==~ "(?i)($exts)" || f.path =~ "(?i)\\b($terms)\\b") && f.length() < maxsize
}
def clean(f) {
println "Delete $f"
// do a dry run via --action test
if (_args.action == 'test') {
return false
}
return f.isDirectory() ? f.deleteDir() : f.delete()
}
// delete clutter files in orphaned media folders
args.getFiles{ isClutter(it) && !it.dir.hasFile{ (it.isVideo() || it.isAudio()) && !isClutter(it) }}.each { clean(it) }
// delete empty folders but exclude given args
args.getFolders().sort().reverse().each { if (it.listFiles().length == 0) { if (deleteRootFolder || !args.contains(it)) clean(it) } }
คุณใช้ระบบปฏิบัติการอะไร?
—
Sekhemty
ฉันใช้ Windows
—
David Custer
นี่ไม่ใช่แบทช์คุณกำลังมองหาอะไรอยู่?
—
Endoro
ฉันจะใช้ SABnzbd ที่มีฟังก์ชั่นบัญชีดำสำหรับส่วนขยาย (หรือเรียกว่ารายการล้างข้อมูล) แต่ไม่มีฟังก์ชั่นบัญชีขาว น่าเสียดายที่รายการสิ่งที่คุณไม่ต้องการ (บัญชีดำ) นั้นไม่ จำกัด และรายการสิ่งที่คุณต้องการ (รายการที่อนุญาต) เป็นเวลาที่ใช้เพียงสองรายการ (หรือมากกว่านั้น) ขึ้นอยู่กับหมวดหมู่ ดังนั้นฉันกำลังมองหาชุดรหัสบางอย่างที่จะ "ในโฟลเดอร์ที่ระบุซ้ำลบทุกอย่างยกเว้นรายการส่วนขยายเช่น. mkv .nfo"
—
David Custer
@DavidCuster ฉันสามารถแนะนำ Bash script สำหรับ Linux แต่ฉันไม่ใช่ผู้เชี่ยวชาญในคำสั่ง CLI สำหรับ Windows
—
Sekhemty