mars 5, 2002
(detta har gjorts 1000 gånger innan men jag ville göra ett eget ;))
Jag behövde ett skript som packar upp alla .rar-filer i alla undermappar (ej rekursivt) från en mapp, så att man slipper gå in i varje mapp enskilt och extrahera. Detta är rätt användbart om man t.ex. tankar ner en valfri licensfri anime som är packad såhär:
E:.
├───AnimeXYZ.COMPLETE.S02.DVDRip.XviD-OMGBBQ
│ ├───AnimeXYZ.S02E01.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E02.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E03.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E04.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E05.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E06.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E07.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E08.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E09.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E10.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ ├───AnimeXYZ.S02E11.DVDRip.XviD-OMGBBQ
│ │ └───Sample
│ └───AnimeXYZ.S02E12.DVDRip.XviD-OMGBBQ
│ └───Sample
Så jag skrev ett för skojs skull, tänkte dela med mig av det.
unpack.vbs
' Script to unpack all .rar files in each subdirectory from current directory
'On Error Resume Next
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
strUnrar = Chr(34) + "C:Program Files (x86)WinRARunrar.exe" + Chr(34)
strUnrarArgs = " x -inul -y"
strRarFolder = BrowseFolder("",False)
If strRarFolder = "" Then
WScript.Quit(0)
End If
Set objFolder = objFS.GetFolder(strRarFolder)
Set colSubfolders = objFolder.SubFolders
For Each folders in colSubfolders
intNrFolders = intNrFolders + 1
Next
intNrFolders = CStr(intNrFolders)
strTxt = "Will extract archives from " + intNrFolders + " folders. This may take a while! Wait for the completetion dialog to appear before accessing the extracted files."
answer = MsgBox(strTxt,1,"unrar script")
If answer = 2 Then
WScript.Quit(0)
End If
For Each objSubfolder in colSubfolders
Set colFiles = objSubfolder.Files
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = False
objRE.Pattern = ".rar"
For Each objFile In colFiles
bMatch = objRE.Test(objFile.Name)
If bMatch Then
files = files + 1
strUnrarFileCmd = strUnrar + strUnrarArgs + " " + objSubfolder + "" + objFile.Name + " " + strRarFolder
objShell.Run strUnrarFileCmd,0,True
End If
Next
If files = 0 Then WScript.Echo "No RARs at given location!"
Next
files = CStr(files)
MsgBox ("Done! Extracted " + files + " archives.")
Function BrowseFolder( myStartLocation, blnSimpleDialog )
' This function generates a Browse Folder dialog
' and returns the selected folder as a string.
'
' Arguments:
' myStartLocation [string] start folder for dialog, or "My Computer", or
' empty string to open in "DesktopMy Documents"
' blnSimpleDialog [boolean] if False, an additional text field will be
' displayed where the folder can be selected
' by typing the fully qualified path
'
' Returns: [string] the fully qualified path to the selected folder
'
' Based on the Hey Scripting Guys article
' "How Can I Show Users a Dialog Box That Only Lets Them Select Folders?"
' http://www.microsoft.com/technet/scriptcenter/resources/qanda/jun05/hey0617.mspx
'
' Function written by Rob van der Woude
' http://www.robvanderwoude.com
Const MY_COMPUTER = &H11&
Const WINDOW_HANDLE = 0 ' Must ALWAYS be 0
Dim numOptions, objFolder, objFolderItem
Dim objPath, objShell, strPath, strPrompt
' Set the options for the dialog window
strPrompt = "Select a folder with RARs:"
If blnSimpleDialog = True Then
numOptions = 0 ' Simple dialog
Else
numOptions = &H10& ' Additional text field to type folder path
End If
' Create a Windows Shell object
Set objShell = CreateObject( "Shell.Application" )
' If specified, convert "My Computer" to a valid
' path for the Windows Shell's BrowseFolder method
If UCase( myStartLocation ) = "MY COMPUTER" Then
Set objFolder = objShell.Namespace( MY_COMPUTER )
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
Else
strPath = myStartLocation
End If
Set objFolder = objShell.BrowseForFolder( WINDOW_HANDLE, strPrompt, _
numOptions, strPath )
' Quit if no folder was selected
If objFolder Is Nothing Then
BrowseFolder = ""
Exit Function
End If
' Retrieve the path of the selected folder
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
' Return the path of the selected folder
BrowseFolder = objPath
End Function
[Bilden hittades inte]
[Bilden hittades inte]
[Bilden hittades inte]
Sen får man AnimeXYZ.COMPLETE.S02.DVDRip.XviDAnimeXYZ.S02E0*.DVDRip.XviD-OMGBBQ.avi osv.
Som med alla andra vbskript så är det mycket som är stulet från lite överallt, men det fungerar. 😛
mars 5, 2002
Delph1 wrote: Spank you!
Visste inte att jag behövde det, men inser nu att jag gör det 🙂
//Andreas
Kul att någon finner det användbart 🙂
Optimalt vore väl att integrera det i högerklick i utforskaren, så att när man står i någon mapp bara högerklickar på ett tomt ställe och väljer ”Unpack subdirs” eller något, så körs skriptet där utan någon dialog…
november 18, 2003
Tufft skript.
Annars så kan man använda sig av gratisprogrammet ExtractNow.
Har kört med den i flera år, fungerar hur bra som helst.
Bara släppa hela disken, eller en mapp som innehåller undermappar med komprimerade filer.
Klarar av de flesta formaten.
mars 5, 2002
Krux wrote: Tufft skript.
Annars så kan man använda sig av gratisprogrammet ExtractNow.
Har kört med den i flera år, fungerar hur bra som helst.
Bara släppa hela disken, eller en mapp som innehåller undermappar med komprimerade filer.
Klarar av de flesta formaten.
Vad tusan. 😉
Får se till att prova det när man kommer hem.
Most Users Ever Online: 694
Currently Online:
350 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
ytaletkygf ytaletkygf
jtaletaoqg jtaletaoqg
AplusMotHQ AplusMotHQ
WileysitZI WileysitZI
ppu-pro_bewRG ppu-pro_bewRG
MichaeldalIL MichaeldalIL
WilliamWotQI WilliamWotQI
FuriousBraw FuriousBraw
UbvpwcgatKX UbvpwcgatKX
CharlesNoushDT CharlesNoushDT
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967
Member Stats:
Guest Posters: 2
Members: 78407
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL