Jump to content
Sign in to follow this  
Nirvana6

Explicit Content Audio Remover

Recommended Posts

Nirvana6

This script search for as many keywords as you want (you can also use wildcards )

and deletes the files found.

Seek_Destroy.exe

Here is the code

#Region;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\Downloads\Costumization\ICONS\Axialis Librarian\Icons\Vista Icons Pack 3.0\Other\Other 50.ico
#AutoIt3Wrapper_outfile=Seek&Distroy.exe
#AutoIt3Wrapper_Compression=0
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion;**** Directives created by AutoIt3Wrapper_GUI ****
#comments-start; 
_FileSearch( "Path and Mask", <$nOption>, <$cpusaver>, <$dirfilter>, <$filefilter>)

;----PARAMETERS-----
;$nOption -   <Optional (0 - normal, 1- recursive)>
;$cpusaver -  <Optional (0 - normal, 1 - CPU Friendly, but Slower)>
;$dirfilter - <Optional (0 - list directories, 1 - filter out directories)>
;$filefilter- <Optional (0 - list files, 1 - filter out files)>
#comments-end
#include<array.au3>
#include <File.au3>


$Keytxt = 0

$Keyno = InputBox("Number Of Keywords","How many keywords you wish to search for ? ")
Global $Mask[$Keyno] = [ "shit.txt" ];you can also use wildcards

while $Keytxt < $Keyno 
    $keyword= InputBox ("Keyword "& $Keytxt , "Keyword " &$Keytxt)
    $Keytxt += 1
    StringStripWS ( $keyword, 8 )
    _ArrayAdd($Mask,$keyword)
WEnd
 
 $Path="D:\"
 
 ChoosePath("1")

Func ChoosePath($c)
    $Path= InputBox ("Disk Drive" , "Type the Drive Letter")
EndFunc

Start(" ")

$PathChoose = MsgBox(4 ,"Path" ,"Choose another Path ?")

if $Pathchoose = 6 then 
ChoosePath("1") 
else
    Exit
EndIf

Func Start($s)
For  $i = 0 to UBound($Mask)-1
ConsoleWrite($Mask[$i] & @CRLF)
$a = _FileSearch( $Path&$Mask[$i], 1, 0, 1, 0)
$Confirm = Msgbox (4 , "Confirmation" , "Are you sure you want to delete the file containing : " & @CRLF & $Mask[$i])
  If $Confirm=7 then ContinueLoop
  if $Confirm=6 then 
  For $X = 0 to Ubound($a)-1
  FileDelete($a[$X])
  Next
  EndIf
Next
EndFunc

;file searching functions

Func _FileSearch($szMask, $nOption = 0, $cpusaver = 0, $dirfilter = 0, $filefilter = 0)
    $szRoot = ""
    $hFile = 0
    $szBuffer = ""
    $szReturn = ""
    $szPathList = "*"
    Dim $aNULL[1]

    If Not StringInStr($szMask, "\") Then
        $szRoot = @ScriptDir & "\"
    Else
        While StringInStr($szMask, "\")
            $szRoot = $szRoot & StringLeft($szMask, StringInStr($szMask, "\"))
            $szMask = StringTrimLeft($szMask, StringInStr($szMask, "\"))
        WEnd
    EndIf
    If $nOption = 0 Then
        _FileSearchUtil($szRoot, $szMask, $szReturn, $cpusaver, $dirfilter, $filefilter)
    Else
        While 1
            $hFile = FileFindFirstFile($szRoot & "*.*")
            If $hFile >= 0 Then     
                $szBuffer = FileFindNextFile($hFile)
                While Not @error
                    If $szBuffer <> "."  And $szBuffer <> ".."  And _
                            StringInStr(FileGetAttrib($szRoot & $szBuffer), "D") Then _
                            $szPathList = $szPathList & $szRoot & $szBuffer & "*"
                    $szBuffer = FileFindNextFile($hFile)
                    
                WEnd
                FileClose($hFile)
            EndIf
            _FileSearchUtil($szRoot, $szMask, $szReturn, $cpusaver, $dirfilter, $filefilter)
            If $szPathList == "*"  Then ExitLoop
            $szPathList = StringTrimLeft($szPathList, 1)
            $szRoot = StringLeft($szPathList, StringInStr($szPathList, "*") - 1) & "\"
            $szPathList = StringTrimLeft($szPathList, StringInStr($szPathList, "*") - 1)
        WEnd
    EndIf
    If $szReturn = "" Then
        $aNULL[0] = 0
        Return $aNULL
    Else
        Return StringSplit(StringTrimRight($szReturn, 1), "*")
    EndIf
EndFunc   

Func _FileSearchUtil(ByRef $ROOT, ByRef $MASK, ByRef $RETURN, $cpusaver, $dirfilter, $filefilter)
    $hFile = FileFindFirstFile($ROOT & $MASK)
    If $hFile >= 0 Then
        
        $szBuffer = FileFindNextFile($hFile)
        While Not @error
            If $cpusaver = 1 Then Sleep(1)                              ;OPTIONAL FOR CPU SAKE
            If $szBuffer <> "."  And $szBuffer <> ".."  Then
                If StringInStr(FileGetAttrib($ROOT & $szBuffer), "D") Then
                    If $dirfilter = 0 Then $RETURN = $RETURN & $ROOT & $szBuffer & "*"
                Else
                    If $filefilter = 0 Then $RETURN = $RETURN & $ROOT & $szBuffer & "*"
                EndIf
            EndIf
            $szBuffer = FileFindNextFile($hFile)
        WEnd
        FileClose($hFile)
    EndIf
EndFunc

Special thanks to :

danwilli for the search UDF

JamesBrooks for helping me everytime when i needed

weaponx for the FOR loop containing

For  $i = 0 to UBound($Mask)-1
muttley

Later Edit

$Keytxt = 0 the 0 should be changed with 1 :)

Edited by Nirvana6

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×