Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Datennamen durch Listeinhalt umbenennen, ergänzen

Mitglied: 115241

115241 (Level 1)

26.02.2014, aktualisiert 30.06.2014, 1154 Aufrufe, 7 Kommentare, 2 Danke

Hallo, ich grüße alle sehr Herzlich.

Ich möchte per Batch JPG Bilder die in einem Verzeichnis liegen umbenennen, jedoch der neue Dateiname befindet sich in eine Liste.txt.
Liste.txt Inhalt:
  • Weihnachtsbilder
  • Urlaubsbilder Oslo
  • Urlaubsbilder London
  • Urlaubsbilder Paris
usw. usf.


Jetzt möchte ich diese Liste verwenden und die JPG Bilder umbenennen
aus nr blabla.jpg soll nr blabla Weihnachtsbilder.jpg
aus nr xyz.jpg soll nr xyz Urlaubsbilder Oslo.jpg
aus nr text.jpg soll nr text Urlaubsbilder London.jpg
aus nr noch ein text.jpg soll nr noch ein text Urlaubsbilder Paris.jpg
usw. usf.

Bilder und Liste.txt liegen alle in gleichen Ordner.

Mein Ansatz ist:
01.
@echo off & setlocal enabledelayedexpansion 
02.
cls 
03.
set Liste=D:\test\Liste.txt 
04.
for /f %%i in ('dir /b a-d *.jpg') do ( 
05.
    set dn=%%~ni 
06.
    set de=%%~xi 
07.
    for /f "delims=" %%j in (%liste%) do ( 
08.
    echo !dn! %%j!de! 
09.
10.
11.
pause
Das ganze funktioniert leider nicht, weil erstens alles zig mal durchläuft und wenn ich echo mit ren vertausche, da kommt Syntaxfehler
Ich wäre noch für eine kurze Erklärung wieso das nicht läuft sehr dankbar und hoffe jemand kann bei mein kleinen Problem helfen.
Danke

ps ich hab mir andere Beiträge durch geschaut, leider komme ich nicht weiter
Mitglied: bastla
LÖSUNG 26.02.2014, aktualisiert 30.06.2014
Hallo entilzha und willkommen im Forum!

Das "zig mal-Durchlaufen" ergibt sich aus der Verschachtelung der Schleifen: Für jede gefundene Datei wird die gesamte Liste abgearbeitet.

"ren" funktioniert nicht, weil in !dn! ja nur der Dateiname steht - auch wenn sich die Datei im aktuellen Ordner befindet und damit kein Pfad benötigt wird, muss zumindest der Typ dabei sein, um die Datei finden zu können, und dann kannst Du ganz ohne Zerlegung %%i verwenden.

Die Zuweisung an die Variablen !dn! und !de! ist übrigens unnötig - Du kannst einfach %%~ni und %%~xi an der passenden Stelle (also im "ren"-Befehl) direkt einsetzen.

Da Du vermutlich nicht nur eine Erklärung für die Ist-Situation Deines Batches suchst, noch ein Vorschlag, diese zu verbessern:
01.
@echo off & setlocal 
02.
cls 
03.
set "Liste=D:\test\Liste.txt" 
04.
(for /f %%i in ('dir /b a-d *.txt') do ( 
05.
    set "Neu=" 
06.
    set /p "Neu=" 
07.
    setlocal enabledelayedexpansion 
08.
    echo ren "%%i" "%%~ni!Neu!%%~xi" 
09.
    endlocal 
10.
))<"%liste%" 
11.
pause
BTW: Durch das Einschalten der "delayedeExpansion" erst nach dem Einlesen des Wertes in die Variable !Neu! darf diese sogar eine beliebige Anzahl von "!" enthalten.

Noch ein Hinweis: Wenn die Liste zu wenig Einträge enthält, werden die verbleibenden Dateien einfach nicht umbenannt.
ps ich hab mir andere Beiträge durch geschaut
Diesen aber vermutlich nicht (musste man/frau aber wohl kennen, um ihn finden zu können ) ...

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
27.02.2014, aktualisiert um 11:14 Uhr
Hallo bastla,

Zitat von bastla:

BTW: Durch das Einschalten der "delayedeExpansion" erst nach dem Einlesen des Wertes in die Variable !Neu! darf
diese sogar eine beliebige Anzahl von "!" enthalten.

Das klappt aber nur, wenn Forschleifenparameter nicht innerhalb verzögerter Erweiterung erweitert werden. Die müssen ihre Werte zuvor an normale Variable übertragen.
Gruss, Endoro.
Bitte warten ..
Mitglied: bastla
27.02.2014 um 12:40 Uhr
@ Endoro
Bist Du sicher, dass dadurch der Wert der Variablen !Neu! betroffen wäre? Hinsichtlich der Dateinamen / Extensions hast Du natürlich Recht ...

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
27.02.2014 um 13:23 Uhr
Hallo @bastla,
!Neu! ist nicht betroffen, da hast du völlig recht, das hab ich missverständlich formuliert. !Neu! wäre nicht mal betroffen, wenn die verzögerte Erweiterung zum Beginn eingeschaltet wird. Das gilt nur für Forschleifen Parameter, die ihre "!"-Zeichen während delayed expansion verlieren.
Gruss, Endoro.
Bitte warten ..
Mitglied: 115241
27.02.2014 um 16:15 Uhr
Danke für die schnelle Hilfe und die Erklärung.

Ich hab noch eine kleine Frage und zwar verstehe ich fast alles aus deinem Code bastla, nur nicht Zeile 10, 5 und 6.

Bezieht sich Zeile 10 auf die 5te bzw. dann auf die 6te, sehe ich das richtig?
Wird per < der Inhalt der Liste.txt in die For Schleife geschrieben und mit in der neu Variable verarbeitet?
Bitte warten ..
Mitglied: bastla
27.02.2014 um 16:55 Uhr
Hallo entilzha!

Zeile 10 übergibt tatsächlich die Liste, sodass innerhalb der Schleife bei jedem Durchlauf ein Eintrag (durch Zeile 6) der Variablen !Neu! zugewiesen wird. Zeile 5 sorgt dafür, dass nicht, falls tasächlich einmal zu wenige Werte in der Liste stünden, immer der letzte Wert weiter verwendet würde ...

Grüße
bastla
Bitte warten ..
Mitglied: 115241
27.02.2014 um 17:41 Uhr
Hallo bastla,
vielen Dank für die Erklärung
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell - Dateien vergleichen und ergänzen

Frage von Franz-Josef-IIBatch & Shell11 Kommentare

Guten Tag Ich bin wieder einmal bei meiner CSV dran und hänge :-( trotz Google und Co Ausgangslage ist ...

Exchange Server

Anzeigename autom. um Suffix ergänzen

gelöst Frage von AndroxinExchange Server14 Kommentare

Moin, moin. Ist es möglich den im AD hinterlegten Anzeigenamen ("Vorname Nachname") beim E-Mail Versand automatisch von Exchange erweitern ...

Outlook & Mail

Outlook Aufgabenformular: Textfeld im Hauptformular ergänzen

Frage von mreskeOutlook & Mail3 Kommentare

Hallo, gibt es eine Möglichkeit im Outlook Aufgabenformular auf der Hauptseite ein Textfeld anzufügen. In meinem speziellen Fall möchte ...

Batch & Shell

Dateien Umbenennen

gelöst Frage von PLBot85Batch & Shell6 Kommentare

Hi, ich habe einen Ordner wo mehrer Dateien drin liegen. 20150316_121757_92636382965528_WMA1847GK62_TDOBB112.ddd 20150314_085730_73826383950256_WMA18263926_TDOBB236.ddd etc Die sollen jetzt mittels einer Batchdatei ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 20 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 20 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

LAN, WAN, Wireless
Gigabit-Lan mit zwei 4-adrigen Kabeln?
Frage von ArvedirmerLAN, WAN, Wireless11 Kommentare

Ich habe folgendes Problem: Ich betreue eine kleine Firma die sich im 1.Stock eines Gebäudes befindet. Es existiert ein ...

Router & Routing
Routing Probleme mit Firewall
gelöst Frage von mb1811Router & Routing9 Kommentare

Hallo Zusammen! Ich habe folgende Problematik, wo ich ein wenig Input benötige: Gem. angehängter Skizze habe ich folgenden Stand: ...