crizzo
Goto Top

dateinamen aus .txt zu ordnernamen machen

Hey leute wäre ich super dankbar wenn ihr mir helfen könntet!
zum problem: ich hab hier ca. 100 .txt dateien, deren dateiname (also ohne .txt) ich gerne in einen ordnernamen machen würde, den die batch datei halt auch selbst erstellt. Praktisch halt dateiname2ordner ;)

nunja, die batch sollte den dateinamen ohne das .txt einlesen, dann einen ordner erstellen und den dateinamen vor .txt als ordnernamen verwenden. Falls möglich sollte die .txt datei anschließend in den ordner (dessen name wie der txt name ist) verschoben werden. Und als krönung soll die batch dann auch noch jede der rund 100 dateien bearbeiten... also halt nicht nur eine sondern sowas wie ne schleife halt... also hauptsache alle 100 dateien werden bearbeitet ;) danke schonmal!

Content-Key: 45008

Url: https://administrator.de/contentid/45008

Printed on: April 18, 2024 at 13:04 o'clock

Member: bastla
bastla Nov 21, 2006 at 17:12:11 (UTC)
Goto Top
Hallo crizzo!

for %i in (*.txt) do md %~ni & move %i %~ni
Die obige Schreibweise gilt für die Direkteingabe am Commandprompt; in einer Batchdatei müssten alle "%"-Zeichen doppelt geschrieben werden. Und Achtung - Du wirst nicht gefragt, ob Du das wirklich willst, daher siehe zuerst die Anmerkung unten (oder verwende Testdaten)!

Was das Bearbeiten angeht:
Abgesehen davon, dass Du vielleicht die Art der Bearbeitung näher erläutern könntest, böte es sich vermutlich an, die Bearbeitung vor dem Verschieben durchzuführen (solange also alle ".txt"-Dateien noch im gleichen Ordner sind).

HTH
bastla
Member: crizzo
crizzo Nov 21, 2006 at 17:48:21 (UTC)
Goto Top
super vielen dank für die schnelle hilfe, also: die .txt's haben schon ihren richtigen namen, also ich meine den namen davon will ich nicht ändern, der soll bleiben wie er ist.

Zur Beschreibung: mh ich versuchs mal anders. Also der Dateiname der Textdatei soll eingelesen werden, danach soll ein Ordner erstellt werden, welcher den Dateinamen der Textdatei als Namen (Ordnernamen) hat. Anschließend soll die Textdatei in den gleichnamigen Ordner (der ja zuvor erstellt wurde) hineinkopiert bzw. verschoben werden. Was ich vergessen hatte zu erwähnen, die dateinamen der Textdateien sind leider nach folgendem Muster: photo1 - 1987.txt Dies hat zur Folge, das dein Code aus der einen Textdatei 3 Ordner erstellt und zwar diese hier: photo1, - , und 1987. Außerdem wird die Textdatei nicht in den erstellten Ordner kopiert, logischerweise, da es so einen Ordner ja auch noch garnicht gibt.

Hoffe das Hilft dir weiter. Werd auch selber noch ein bisschen dran rumspielen, Danke schonmal!

PS: Habe die Textdatei mal probeweise ohne Leerzeichen gemacht und trara, es geht. Leider brauche ich es aber mit Leerzeichen in den Textdateien und Ordnern. Hoffe das ist machbar ;)
Member: bastla
bastla Nov 21, 2006 at 17:52:11 (UTC)
Goto Top
Hallo crizzo!

Sorry - leider passiert's mir immer wieder, dass ich auf die Schnelle etwas hinkritzle (SCNR) und die Anführungszeichen vergesse. Daher also
for %i in (*.txt) do md "%~ni" & move "%i" "%~ni"  

Grüße
bastla
Member: crizzo
crizzo Nov 21, 2006 at 17:54:37 (UTC)
Goto Top
Super vielen lieben Dank, genau das wollte ich! Super!
Einen schönen Abend noch!