[suche] Batch - Ordner erstellen und Ordner verschieben.

The Snake

Neu angemeldet
Registriert
15 Juli 2013
Beiträge
152
Ich bin gerade dabei, meine externe Festplatte, aufzuräumen. Nun besitze ich darauf sehr viel Musik & Bilder welche ich immer in Hauptordner verschieben möchte.
Als Beispiel
Schulanfang - Schule
Schulanfang - Aufführung
Schulanfang - Feier
Diese 3 Ordner sollen in einen, neuerstellten Ordner "Schulanfang" verschoben werden.

Könnte mir vielleicht jemand eine kleine Batchdatei schreiben, welche halt immer die Wörter nimmt, bis zum " -" (mit Leerzeichen)?
Ich wäre euch echt dankbar!
Gern schick ich demjenigen nen 10er per PP
 
Da sowas in Batch mMn total aufwendig und in einem Bastel-Desaster enden würde, hab ich das mal in runter geschrieben:

AutoIt-Skript:
[src=autoit]#include <StringConstants.au3>

Opt('MustDeclareVars', 1)

Global $sDefaultSearchPath = @ScriptDir
Global $sDefaultTrimTo = ' - '

If $CmdLine[0] = 1 Then $sDefaultSearchPath = $CmdLine[1]
If $CmdLine[0] = 2 Then $sDefaultTrimTo = $CmdLine[2]

_StartSorting($sDefaultSearchPath, $sDefaultTrimTo)


Func _StartSorting($sSearchPath, $sTrimTo)
Local $sDirName, $sNewDirName, $iPos
Local $hSearch = FileFindFirstFile($sSearchPath & '\*.')
ConsoleWrite(StringFormat('\nStarted sorting of the directory "%s".', $sSearchPath))
While True
$sDirName = FileFindNextFile($hSearch)
If @error Then ExitLoop
$iPos = StringInStr($sDirName, $sTrimTo, $STR_NOCASESENSEBASIC)
If $iPos > 0 Then
$sNewDirName = StringStripWS(StringLeft($sDirName, $iPos), 3)
If Not FileExists($sSearchPath & '\' & $sNewDirName) Then
DirCreate($sSearchPath & '\' & $sNewDirName)
ConsoleWrite(StringFormat('\nCreated new directory "%s".', $sSearchPath & '\' & $sNewDirName))
EndIf
DirMove($sSearchPath & '\' & $sDirName, $sSearchPath & '\' & $sNewDirName, 1)
ConsoleWrite(StringFormat('\nMoved the directory "%s" to "%s".', $sSearchPath & '\' & $sDirName, $sSearchPath & '\' & $sNewDirName))
EndIf
WEnd
FileClose($hSearch)
ConsoleWrite(StringFormat('\nFinished sorting.\n', $sSearchPath))
EndFunc ;==>_StartSorting
[/src]
Kann auch mittels einer Batch aufgerufen werden, siehe Anhang.
Allerdings bitte vorher ausführlich in einem geeigneten Ordner testen, ob es deinen Wünschen entspricht, damit nachher nichts falsch eingeordnet ist.
 

Anhänge

Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #3
Dank dir, teste ich sofort.
Von AutoIt-Skript hab ich null Ahnung ^^ Hab ich noch nicht mal gehört das es soetwas gibt.
Bei Batch zieh ich ja einfach nur die Ordner auf die Batch und los gehts ;)


edit//
richtig richtig geil! Das klappt wie gewünscht! :T

Schick mir per PN deine PP dann bekommst du eine "Entschädigung" ;)
 
Zurück
Oben