Ordner erstellen mit gleichem Namen wie die Datei.

FCU

Neuling
Thread Starter
Mitglied seit
03.07.2022
Beiträge
26
Hallo.
Vorab, ich habe mich im Netz doof und dusslig gesucht, leider nichts passendes gefunden.
Nun zu meinem Problem.

Ich habe viele Dateien die ich alle in einen separaten Ordner mit gleichem Namen verschieben möchte. Mein Problem dabei ist, daß die Dateinamen zum Teil aus mehreren Worten bestehen und zwischen den Wörtern Leerzeichen existieren.
Alle Lösungsansätze die ich bisher fand, erstellen zwar Ordner, kopieren die Dateien auch in die erstellten Ordner nur der Name der erstellten Ordner wird nur bis zum ersten, Leerzeichen übernommen. Gibt es eventuell ein Programm oder eine bat Datei die den gesamten Namen übernimmt?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Versuch mal advanced renamer, eventuell kann der das
 
Dieses Tool kann doch nur Dateien umbenennen , aber nicht verschieben.
Aber ich versuche mal mein Glück
Das Tool ist es nicht.....
 
Zuletzt bearbeitet:
Du musst den Namen in Anführungszeichen setzen, wenn darin Leerzeichen enthalten sind
 
Er meinte im Skript. Normalerweise solltest du in einer Batchdatei oder in der Powershell den Dateinamen (mit oder ohne Dateiendung) verwenden können, um ihn an mkdir zu übergeben und anschließend die Datei reinzukopieren. Du sollst natürlich nicht bei allen Dateien händisch Anführungszeichen hinzufügen...

Also so, das im Skript nicht deine datei.txt sondern "deine datei.txt" bzw. in deinem Fall dann "deine datei"genutzt wird.
 
Er meinte im Skript. Normalerweise solltest du in einer Batchdatei oder in der Powershell den Dateinamen (mit oder ohne Dateiendung) verwenden können, um ihn an mkdir zu übergeben und anschließend die Datei reinzukopieren. Du sollst natürlich nicht bei allen Dateien händisch Anführungszeichen hinzufügen...

Also so, das im Skript nicht deine datei.txt sondern "deine datei.txt" bzw. in deinem Fall dann "deine datei"genutzt wird.
Ok. Das probiere ich mal.
 
Erzeuge eine neue Datei namens "folders_move.bat" mit folgendem Inhalt:

Code:
@for %%i in (*.*) do @call :move_to_folder "%%~ni" "%%~i"

:move_to_folder
@if not %1 == "folders_move" md %1 & move %2 %1

Kopiere diese in das betroffene Verzeichnis, wo die ganzen einzelnen Dateien liegen und führe sie aus. Fertig.
 
Zuletzt bearbeitet:
Also so, das im Skript nicht deine datei.txt sondern "deine datei.txt" bzw. in deinem Fall dann "deine datei"genutzt wird.
Das liegt daran wie Commandozeilenargumente funktionieren. Jede Zeichenkette nach einem Leerzeichen ist ein eigenes Argument.

Code:
rename a b
Rename ist das Commando, a ist das erste Argument, b ist das zweite Argument
-> a wird in b umbenannt.
Das klappt, solange die Dateinamen eben keine Leerzeichen enthalten.

Wenn die Dateinamen Leerzeichen enthalten und du z.B.
Rich (BBCode):
rename meine datei.txt meine andere datei.txt
ausführst, dann ist weiterhin rename das Commando, das erste Argument aber "meine" und das zweite Argument "datei.txt".
Es wird also versucht eine Datei namens "meine" in "datei.txt" umzubennen. Es existiert aber keine Datei die "meine" heisst, somit funktioniert das ganze nicht. Was nicht existiert kann nicht umbenannt werden.
"meine", "andere" und das letzte "datei.txt" wären dann Argument 3, 4 und 5. Womit "rename" aber nichts anfangen kann, weil es gibt für rename nur 2 Argumente, eben Quell- und Zielname. Mehr Argumente werden dann idR einfach ignoriert.

Damit rename kapiert das "meine datei.txt" zusammen Argument 1 (also der Quellname) und "meine andere datei.txt" Argument 2 (also der Zielname) ist, musst du es in Anführungszeichen schreiben zusammenfassen.
Rich (BBCode):
rename "meine datei.txt" "meine andere datei.txt"
fasst die Dateinamen trotz der enthaltenen Leerzeichen zusammen, somit ist "meine datei.txt" wieder Argument 1 (Quelldateiname) und "meine andere datei.txt" Argument 2 (der Zielname).
 
  • Danke
Reaktionen: Tzk
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