rkrausby
Goto Top

Verwendung von "set" in For-Schleife funktioniert nicht

Hallo zusammen.

Ich habe ein kleines Problem beim erstellen einer Abfrage.

Das Hauptproblem liegt darin dass ich innerhalb einer For-Schleife kein "set" ausführen kann.

 for /f %%i in ('dir /a-D /o-d /b d:\kill\test\*.*') do (  
set inhalt=%%i
echo %inhalt%
)

Der Hintergrund ist folgender.
Ich möchte mehrere Dateien in Ordner verschieben.
Die Dateien beginnen mit einer 5 stelligen Zahl, wleche dann als Ordner (evtl.) angelegt werden müssen und die Dateien hineigeschoben werden.

Dazu muss ich den ersten 5 Stellen auf Nummer prüfen und eben auch einen Ordner erstellen.
Deshlab wollte ich das Ergebnis Scheife in eine Variable packen um hier den String prüfen und beschneiden zu können.

Aber soweit bin ich noch nicht.

Meine Frage hier wäre erstmal, war um der "set"-Befehl den Inhalt von %%i nicht in die Variable "inhalt" schreibt. Bzw, er macht dies schon, aber erst nach dem 2. Durchlauf und dann auch nur den letzten Dateinamen von 7 Testdateien.

Wo habe ich den Denkfehler.

Wäre für jede Hilfe Dankbar.

Gruß
Robert

Content-Key: 270025

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

Printed on: April 25, 2024 at 06:04 o'clock

Mitglied: 114757
Solution 114757 Apr 23, 2015, updated at Apr 27, 2015 at 10:54:39 (UTC)
Goto Top
Das Hauptproblem liegt darin dass ich innerhalb einer For-Schleife kein "set" ausführen kann.
Und täglich grüßt das Murmeltier ...
@echo off & setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%i in ('dir /a-D /o-d /b d:\kill\test\*.*') do (  
    set "Inhalt=%%i"  
    echo !Inhalt!
)
Tutorial zur FOR-Schleife (Exkurs (verzögerte) Variablenerweiterung)

Gruß jodel32
Member: rkrausby
rkrausby Apr 23, 2015 at 11:18:32 (UTC)
Goto Top
Hallo jodel32.

Danke für Deine Hilfe und Sorry, dass ich die Lösung nichtgefunden habe.

Ich habe wirklich (Hand auf´s Herz) seit Montag gesucht und auch viele Seiten im Internet gefunden, die zwar Beispiele haben, aber mein Problem nie lösten.
Auf den Suchbegriff "Variablenerweiterung" muss man aber auch erstmal kommen ....

Nochmals Danke für Deine Hilfe

Gruß
Robert