Dateien in Ordnername umbenennen

2rb|Eriz

SUPEЯUNKИOWN
Thread Starter
Mitglied seit
05.01.2006
Beiträge
2.708
Ort
HAL/CB
Hallo,

Ich bräuchte ein Tool, welches es mir ermöglicht, die Dateinamen, die ein Ordner beinhaltet in dessen Bezeichnung umzubenennen.
Also der Dateiname soll gleich dem Ordnernamen sein. Per Hand würde es ewig dauern, da es hunderte Ordner sind.

Hat jemand eine Idee?
lg.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hm...ja, geht in die richtige Richtung.
Die Frage ist nur, was ich bei den Optionen eingeben muss, um das o.g. zu erreichen ?
 
Also der Dateiname soll gleich dem Ordnernamen sein.

Ich hab dir mal eben ein VBScript geschrieben. Funktioniert wunderbar. Einfach die gewünschten Datein auf das Script ziehen und das Script macht den Rest. Jede Datei bekommt den Namen ihres Ordners aber behält ihre Dateiendung. Wenn noch Änderungswünsche bestehen einfach melden.

Code:
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 to Parameter.Count - 1
	Set fso = CreateObject("Scripting.FileSystemObject")
	Ordner=fso.GetParentFolderName(Parameter(i))
	Dateiendung=fso.GetExtensionName(Parameter(i))
	Dateiname=fso.GetFileName(fso.GetParentFolderName(Parameter(i)))
	fso.MoveFile Parameter(i),Ordner + "\" + Dateiname + "." + Dateiendung
Next
 
"einfach auf das script ziehen" ?
sry, ich weiß nicht was du meinst. Ich hab null Ahnung davon :(
 
1. VBScript auf deiner Festplatte speichern.
2. Sicherheitskopie der Datein, die du umbennen möchtest, anlegen
3. Alle Datein, die du umbennen möchtest markieren und per Drag and Drop auf die VBScript Datei ziehen.
4. Das Resultat begutachten.
5. Wenn alles geklappt hat, Sicherheitskopie löschen. Wenn nicht, Sicherheitskopie zurück spielen und mich steinigen.
 
hehe sry ^^
kannst es ja selbst mal ausprobieren ;)

Fehlerbericht:

Skript: K:\Muuuh\rename.vbs
Zeile: 8
Zeichen: 2
Fehler: Die Datei wurde nicht gefunden
Code: 800A0035
Quelle: Laufzeitfehler in Microsoft VBScript
 
hehe sry ^^
kannst es ja selbst mal ausprobieren ;)

Hab ich. Bei mir funktioniert es. Versuch mal zum Spaß folgendes und sag mir was die Messagebox sagt. Da du jede Messagebox mit OK bestätigen musst, solltest du nur 2 Datein und nicht gleich 1000 nehmen.

Code:
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 to Parameter.Count - 1
	Set fso = CreateObject("Scripting.FileSystemObject")
	Ordner=fso.GetParentFolderName(Parameter(i))
	Dateiendung=fso.GetExtensionName(Parameter(i))
	Dateiname=fso.GetFileName(fso.GetParentFolderName(Parameter(i)))
	'fso.MoveFile Parameter(i),Ordner + "\" + Dateiname + "." + Dateiendung
	msgbox Parameter(i) + " soll umbenannt werden in " + Ordner + "\" + Dateiname + "." + Dateiendung
Next
 
Noch immer nicht:

Meldung:
K:\Filme\8mm soll umbenannt werden in K:\Filme\Filme

nach dem Klick auf OK passiert....nichts...
 
Meldung:
K:\Filme\8mm soll umbenannt werden in K:\Filme\Filme

Na da haben wir doch den Fehler. Du versuchst einen Ordner auf das Script zu ziehen richtig? Dafür ist das Script natürlich im Moment nicht ausgelegt. Du kannst dir aber mit der Windows Suche einfach den Inhalt des Ordners anzeigen lassen und dann die gewünschten Datein auf das Script ziehen.
 
"8mm" war in dem Fall eine einzelne Datei, kein Ordner.
 
"8mm" war in dem Fall eine einzelne Datei, kein Ordner.

Dann hat diese Datei wohl keine Dateiendung. Das habe ich aber bei mir ebenfalls getestet und es funktioniert. Der ausgegeben String ist korrekt. Das Script sollte in der Lage sein diese Datei umzubennen. Falls nicht, verhält sich dein WSH (Windows Scripting Host) anders als meiner. Das kann ich dir aber erst heute Abend sagen wenn ich zuhause bin und das Script an meinem Windows 7 PC testen kann.

Das 1. Script kann Datein umbennen.
Das 2. Script kann dir zeigen was das 1. Script für Daten übergeben bekommt aber die Datei wird auch nach Drücken des OK Buttons nicht umbenannt weil die entsprechende Zeile auskommentiert ist.

Kann es eventuell sein, dass du dem 1. Script eine andere Datei als jetzt dem 2. Script übergeben hast?
 
ah okay. jetzt geht es. ich dachte, du hattest das erste script bearbeitet, was dann das Zweite ergab. Habs jetzt nochmal mit dem ersten versucht und es geht!!

Vielen Dank für die Mühe ;)
 
Vielen Dank für die Mühe ;)

Nicht dafür. Sowas macht keine Mühe.

Wenn du das Script öfter verwendest, könnte man den Fehler auch noch abfangen oder das Script auch so erweitern, dass es den Inhalt eines Ordners selbstständig durchsucht. Von letzterem würde ich allerdings abraten. Einmal den falschen Ordner erwischt und schon ist das Geschrei groß. Dann doch lieber mit der Windows Suche vorher genau die Datei auswählen die man auch haben will.

An dieser Stelle auch ein Dank zurück an dich. Hast mich immerhin auch ertragen ohne Ausfallend zu werden. Da habe ich schon andere Sachen erlebt. Für das Script hab ich jetzt nicht mal 10 Minuten gebraucht. Es gibt aber auch Leute die wollen etwas komplexere Programme haben aber natürlich immer kostenlos. Ich hoffe der eine oder andere von denen ließt mit und wird vieleicht zum Nachdenken angeregt.
 
@little skunk.
ah, Du bist der clevere Skriptersteller. Verblüffent, was man so in 10 min. alles anstellen kann.

Kannst Du mir bitte sagen, was ich an dem skript ändern muss, dass alle Dateien, die mit den gleichen ersten 5 Zahlen anfangen zu je einem Ordner zusammengefasst werden, welcher die gleiche Nummer(die mit den 5 Zahlen) bekommen soll.

Beisp.: 00001xyz.jpg & 00001abc.jpg zusammenfassen in den ordner 00001

wenn es die sache etwas vereinfachen würde, dann lassen sich natürlich die order vorab erstellen. Somit müssten die zusammengefassten dateien, in die bereits bestehenden ordern hineinkopiert oder hineinverschoben werden.
 
Bitte vorher Sicherheitskopie anlegen. Das Script ist ungetestet. Ordner werden selbstständig angelegt ausgehend vom derzeitigen Speicherort jeder Datei.

Ansonsten wie gehabt mit Drag and Drop. Das Script ließe sich auch in das Kontextmenü des Explorers einbauen.

Code:
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 to Parameter.Count - 1
	Set fso = CreateObject("Scripting.FileSystemObject")

	Pfad=fso.GetParentFolderName(Parameter(i))

	Datei=fso.GetFileName(Parameter(i))

	Ordner=left(Datei,5)

	If not fso.FolderExists(Pfad + "\" + Ordner) Then
		fso.CreateFolder Pfad + "\" + Ordner
	End If
	fso.MoveFile Parameter(i),Pfad + "\" + Ordner + "\" + Datei
Next
 
wow, vielen dank. leider hatte ich eine fehlermeldung erhalten: "argumenten liste zu lang". Ich weiß nur nicht ob ich alles richtigg gemacht habe. Ich habe das skript in den editor kopiert und das ganze als .vbs abgespeichert und die dateien dann auf die vbs datei gezogen.

kann man dich auch über ein instant massanger erreichen sowas wie skype? wenn ja. pm me plz.

wow, es geht doch.

jedoch nur an die 7 ordner gleichzeitig. kann man da auch noch was ändern?
 
Zuletzt bearbeitet:
Ich tippe auf einen zu langen Dateipfad. Eine Begrenzung der Parameter im VBScript ist mir nicht bekannt.

Ich hab zwar ICQ aber nicht hier auf Arbeit. Bringt also nicht soviel.
 
Danke für die schenelle antwort. wie kann ich das problem des dateipfades lößen? soll ich die dateien und das skript ins c: verzeichnis kopieren oder sollte der dateinamen nicht alzugroß sein?
einzelne dateien lassen sich mit dem skript tadellos verarbeiten nur nicht viele auf einmal.
 
Das Drag&Drop-Limit - Tipp - PC-WELT

Lösung: Die Datein nicht mit Drag and Drop sondern mit dem Windows Kontextmenü "Senden an" übergeben. Dazu einfach das VBScript nach %USERPROFILE%\SendTo kopieren.

Kannst auch die Datein nach C: kopieren. Dann kannst du ein paar mehr Datein aber immernoch nicht alle gleichzeitig verarbeiten.
 
Zuletzt bearbeitet:
vielen dank, da werde ich mich gleich mal versuchen
 
oftmals wird auch ganz vergessen, dass der Windows Explorer ebenfalls mehrere Dateien auf einen Schwung umbenennen kann. Die Dateien haben dann den selben Namen, wie xxx (01).mp3, xxx (02).mp3, xxx (03).mp3.
Wenn Du also im Ordner Movies alle Dateien darin markierst, und dann [F2] drückst, zum umbenennen, gibst du den Names des Orders, also Movies an, und erhältst dann lauter Dateien die Movies (xxx).xxx (fortlaufend numieriert) heißen.

Umbenennen mehrerer Dateien mit dem Windows-Explorer in Windows XP
 
Das Drag&Drop-Limit - Tipp - PC-WELT

Lösung: Die Datein nicht mit Drag and Drop sondern mit dem Windows Kontextmenü "Senden an" übergeben. Dazu einfach das VBScript nach %USERPROFILE%\SendTo kopieren.

Kannst auch die Datein nach C: kopieren. Dann kannst du ein paar mehr Datein aber immernoch nicht alle gleichzeitig verarbeiten.

Nach über 2 wochen bin ich endlich mal dazugekommen, bzw. habe meine bilder nun soweit, dass ich Sie durch das von Dir geschriebene Skript jagen kann.

Ich dachte ich hätte schon mal einen positiven durchlauf über dern sentto-ordner gehabt. hast Du schon mal das mit dem sentto getestet? Heute schlug der versuch leider fehl(Fehlermeldung: Argumentenliste zu lang)

---------- Beitrag hinzugefügt um 17:50 ---------- Vorheriger Beitrag war um 17:48 ----------

oftmals wird auch ganz vergessen, dass der Windows Explorer ebenfalls mehrere Dateien auf einen Schwung umbenennen kann. Die Dateien haben dann den selben Namen, wie xxx (01).mp3, xxx (02).mp3, xxx (03).mp3.
Wenn Du also im Ordner Movies alle Dateien darin markierst, und dann [F2] drückst, zum umbenennen, gibst du den Names des Orders, also Movies an, und erhältst dann lauter Dateien die Movies (xxx).xxx (fortlaufend numieriert) heißen.

Umbenennen mehrerer Dateien mit dem Windows-Explorer in Windows XP

Danke in meinem fall ist das leider nicht ausreichend, doch in zukunft könnte ich das ja mal gebrauchen. in der regel benutze ich die umbenennen funktion von photoshop und total command.
 
Schade eigentlich. Also gilt die Limitierung dort anscheinend auch.

Eine Idee hätte ich noch. Liegen alle Bilder in einem Ordner und sonst ist in dem Ordner nichts? Dann würde ich fix das Script umschreiben, dass es nicht alle Bilder als Übergabeparameter haben möchte sondern den Ordner selber durchsucht.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh