Kollege hat beim Rippen zig CDs in den selben Ordner gespeichert Ich möchte nun den Interpreten als Ordner und die Dateien darin speichern. Zum Glück ist der Dateiname immer gleich aufgebaut wie
A Girl I Knew - Steppenwolf.mp3
Wäre sehr nett, wenn mir jemand hilft.
MUT: Namensteil als neuer Ordner und Dateien einsortieren.
Moderators: Hacker, Stefan2, white
VBScript: Split files at hyphen and Move files to sub folder
>> Kollege hat beim Rippen zig CDs in den selben Ordner gespeichert
>> Ich möchte nun den Interpreten als Ordner und die Dateien darin speichern.
>> Zum Glück ist der Dateiname immer gleich aufgebaut wie: A Girl I Knew - Steppenwolf.mp3
VON:
X:\MP3\A Girl I Knew - Steppenwolf.mp3
X:\MP3\Nicht eine Stunde - Tut Mir Leid (1977).ext
ZU:
X:\MP3\Steppenwolf\A Girl I Knew - Steppenwolf.mp3
X:\MP3\Tut Mir Leid (1977)\Nicht eine Stunde - Tut Mir Leid (1977).ext
Versuch mal das:
_ForEachSelFileDo-MoveToSubfolder.vbs
HTH?
>> Ich möchte nun den Interpreten als Ordner und die Dateien darin speichern.
>> Zum Glück ist der Dateiname immer gleich aufgebaut wie: A Girl I Knew - Steppenwolf.mp3
VON:
X:\MP3\A Girl I Knew - Steppenwolf.mp3
X:\MP3\Nicht eine Stunde - Tut Mir Leid (1977).ext
ZU:
X:\MP3\Steppenwolf\A Girl I Knew - Steppenwolf.mp3
X:\MP3\Tut Mir Leid (1977)\Nicht eine Stunde - Tut Mir Leid (1977).ext
Versuch mal das:
_ForEachSelFileDo-MoveToSubfolder.vbs
Code: Select all
'// Purpose: Split files at hyphen and Move files to sub folder
' Kollege hat beim Rippen zig CDs in den selben Ordner gespeichert
' Ich möchte nun den Interpreten als Ordner und die Dateien darin speichern.
' Zum Glück ist der Dateiname immer gleich aufgebaut wie: A Girl I Knew - Steppenwolf.mp3
'// VBScript for TC, by Stefan, v00.1, 2015-12-18, http://ghisler.ch/board/viewtopic.php?p=303373#303373
'// TC Button
'// CMD: path\to\this\script.vbs
'// PARAM: "%L"
'// USAGE: Select your files, execute this script... done.
On Error Resume Next
Const FORREADING = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSO = Wscript.CreateObject("WScript.Shell")
sTCtempList = Wscript.arguments.Item(0) ' The TC temp file due the "%L"
If FSO.FileExists(sTCtempList) Then
'MsgBox "Tempfile is: " & sTCtempList '>> C:\Users\myusername\AppData\Local\Temp\CMDB034.tmp
'WSO.run "notepad " & sTCtempList
Set oTextStream = FSO.OpenTextFile(sTCtempList,FORREADING)
Do Until oTextStream.AtEndOfStream
vFullName = oTextStream.ReadLine
Set oFile = FSO.GetFile(vFullName)
vFile = FSO.GetFileName(oFile)
vBase = FSO.GetBaseName(oFile)
vExte = FSO.GetExtensionName(oFile)
vName = vBase &"."&vExte
sFolder = ""
'sFolder = A Girl I Knew - >>Steppenwolf<<.mp3 // set 'sFolder' to "Steppenwolf"
sFolder = RegExReplace(vBase, "^(.+) - (.+)$", "$2")
If(sFolder<>"") Then
If Not FSO.FolderExists(sFolder) Then FSO.CreateFolder sFolder
'//Move file, do not overwrite existent one:
FSO.MoveFile vFullName, sFolder & "\" & vName
End If '(sFolder<>"")
Loop
oTextStream.Close
Else
WScript.Echo "Input file sTCtempList not found."
End If
Function RegExReplace(sValue, sPattern, sNValue)
Dim oReg : Set oReg = New RegExp
oReg.Pattern = sPattern
RegExReplace = oReg.Replace(sValue, sNValue)
Set oReg = Nothing
End Function
HTH?

Last edited by Stefan2 on 2015-12-18, 13:35 UTC, edited 1 time in total.