danijel.sr
Goto Top

Datei unbenennen als Schleife

Hallo Leute,

ich habe in einem Ordner mehrer files z.B.
123.SEMI.sem
345.sem
ujhtz.SEMI.sem
fghjk.sem

So, ich möchte das ".SEMI" Dateiendung in .sem unbenannat wird oder eben verschwindet und nur .sem als Dateiendung ...
z.B.
123.sem
345.sem
ujhtz.sem
fghjk.sem

Ich dachte mir das mache ich mit einer Batchfile der jede Stunde läuft und entsprechen es richtig unbenennt.
Habe eine Schleife die ich als Batch laufen lasse möchte.
Bitte keine Tools vorschläge. Das soll auf Server jeden Stunde laufen.

cd pfad_zu_ordner
for %%i in (*.SEMI.sem) do REN "%%i" "%%i.sem"
Es soll einfach alle files in dem Ordner prüfen und nur die mit .SEMI.sem ändern.

Da ich nicht gerade Programmierer bin, hoffe das mir einer kurz helfen.

Danke

grüße,
Danijel

Content-ID: 368680

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

Ausgedruckt am: 19.11.2024 um 15:11 Uhr

rubberman
rubberman 20.03.2018 aktualisiert um 20:18:39 Uhr
Goto Top
Ungetestet sollte die Schleife etwa so aussehen:
for %%i in (*.SEMI.sem) do for %%j in ("%%~ni") do REN "%%~i" "%%~nj.sem"

Steffen

EDIT: doergänzt
danijel.sr
danijel.sr 21.03.2018 um 07:48:36 Uhr
Goto Top
Guten Morgen,

danke das tut 1a!

Wenn es dir nicht so schwer ist kannst du mir erklären was "%%~ni" %%~i %%~nj das genau bedeutet??
For Schleife habe ich schon verstanden aber der rest nicht so wirklich ...


grüße,
Danijel
rubberman
rubberman 21.03.2018 um 12:03:21 Uhr
Goto Top
Wenn du ein FOR /? ausführst, findest du die Erklärung (wie bei jedem anderen Befehl übrigens auch).
    %~I         - Expandiert %I und entfernt alle umschließenden
                   Anführungszeichen (").  
    %~fI        - Expandiert %I zu einem vollständigen Dateinamen.
    %~dI        - erstellt nur den Laufwerkbuchstaben von %I.
    %~pI        - erstellt nur den Pfad von %I.
    %~nI        - erstellt nur den Dateinamen von %I.
    %~xI        - erstellt nur die Dateierweiterung von %I.
    %~sI        - erstellter Pfad enthält nur kurze Dateinamen.
    %~aI        - erstellt die Dateiattribute von %I.
    %~tI        - erstellt Datum und Zeit von %I.
    %~zI        - erstellt die Dateigröße von %I.
    %~$PATH:I   - Durchsucht die in der PATH-Umgebungsvariablen
                   angegebenen Verzeichnisse und expandiert die erste
                   gefundene Datei %I zu dem vollständigen Dateinamen.
                   Wenn der Name der Umgebungsvariablen nicht definiert
                   ist oder diese Datei bei der Suche nicht gefunden wurde,
                   wird dieser Parameter zu einer leeren Zeichenfolge
                   expandiert.

Diese Parameter können auch miteinander kombiniert werden:

    %~dpI       - erstellt den Laufwerkbuchstaben und Pfad von %I.
    %~nxI       - erstellt den Dateinamen und die Dateierweiterung von %I.
    %~fsI       - Expandiert %I zu einem vollständigen Namen, der nur
                   kurze Dateinamen enthält.
    %~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
                   angegebenen Verzeichnisse nach %I und erstellt den
                   Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
    %~ftzaI     - Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
                   Befehls entspricht.
Du musst also in 2 Steps vorgehen.
- aus 123.SEMI.sem ein 123.SEMI machen
- aus 123.SEMI ein 123 machen
Funktioniert, weil die 2. FOR Schleife das .SEMI als Dateiendung sieht, da es der letzte durch einen Punkt getrennte Teil des Dateinamens ist.

Steffen
danijel.sr
danijel.sr 21.03.2018 um 13:46:03 Uhr
Goto Top
danke schön face-smile

grüße