it-frosch
Goto Top

Verzeichnisse per Skript umbennen - etwas dem Namen voranstellen

Guten Morgen Kollegen,

ich habe ca. 50.000 Verzeichnisse, deren Namen ich um eine Zahl erweitern will.
Allerdings soll dabei dem Verzeichnisname beim Umbennen etwas vorangestellt werden.

Beispiel:
Ordnername alt: 123
Ordnername neu: 1000123

Einem Verzeichnis etwas anhängen kann ich damit:
for %i in ("G:\Test\3-stellig") do @for /d %j in ("%i\*.*") do @echo ren "%j" "%j-100"  

allerdings habe ich keinen Plan wie ich mein oben beschriebenes Ziel erreichen kann.

Ich will im Prinzip zu alle Ordnernamen (sind von 100 - 888888 durchnummeriert) rechnerisch 1.000.000 "dazuaddieren". face-wink
Das beschreibt es am besten.

Wenn einer der Skript-Kundigen einen Hinweis hätte, würde das echt helfen.

Grüße vom it-frosch

Content-Key: 2433388388

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

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

Mitglied: 1915348599
Solution 1915348599 Apr 07, 2022 at 07:55:19 (UTC)
Goto Top
@echo off &setlocal enabledelayedexpansion
for /d %%a in ("D:\MeinRootOrdner\*") do (set /a "num=%%~nxa+1000000" &ren "%%a" "!num!")  
Member: Tezzla
Tezzla Apr 07, 2022 at 08:01:39 (UTC)
Goto Top
Zitat von @1915348599:

@echo off &setlocal enabledelayedexpansion
for /d %%a in ("D:\MeinRootOrdner\*") do (set /a "num=%%~nxa+1000000" &ren "%%a" "!num!")  

Du bist auch 'ne fleischgewordene CPU face-smile
Mitglied: 1915348599
1915348599 Apr 07, 2022 at 08:05:36 (UTC)
Goto Top
Zitat von @Tezzla:
Du bist auch 'ne fleischgewordene CPU face-smile
0100100101100011011010000010000001110101011011100110010000100000010001100110110001100101011010010111001101100011011010000011111100100000010101110110111100100000011001000110010101101110011010110111001101110100001000000110010001110101001000000110100001101001011011100010000000101110001011100010111000100000001110100010110100101001
Member: it-frosch
it-frosch Apr 07, 2022 updated at 11:34:27 (UTC)
Goto Top
Hallo Pretty,

unter der Voraussetzung:

G:\Test\3-stellig
|-->123
|-->136

habe ich dein Skript angepasst:

for %i in ("G:\Test\3-stellig") do @for /d %j in ("%i\*.*") do (set /a "num=%~nxj+1000000" &ren "%j" "!num!")  

Leider benennt es das Verzeichnis nicht von 123 --> 1000123 um sondern in !num!.
Das Skript gibt an der Commandline aber den richtigen Verzeichnisnamen aus 1000123.

LÖSUNG
packe ich den Code:
@echo off
Setlocal EnableDelayedExpansion
for %%i in ("G:\Test\3-stellig") do @for /d %%j in ("%%i\*.*") do (set /a "num=%%~nxj+1000000" &ren "%%j" "!num!")  
in eine Batch Datei und starte die Datei, dann funktioniert alles wie gewünscht.

Danke dir.


Grüße vom it-frosch
Mitglied: 1915348599
1915348599 Apr 07, 2022 updated at 12:12:40 (UTC)
Goto Top
Zitat von @it-frosch:
in eine Batch Datei und starte die Datei, dann funktioniert alles wie gewünscht.
Davon war ich ausgegangen sonst wird das "delayed expansion" nicht aktiv 😉