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

Dateinamen Umbenennen nach Ersetzten

Frage Entwicklung Batch & Shell

Mitglied: batchnewbie

batchnewbie (Level 1) - Jetzt verbinden

16.07.2014, aktualisiert 20:50 Uhr, 1072 Aufrufe, 9 Kommentare, 2 Danke

Hallo,
ich experimentiere ein wenig und bin ein einem Punkt, wo ich nicht weiter weiß.

Ich lese ein Dateinamen (DateiName) ein, aus der Mitte der Dateinamen entnehme ich nur die Buchstaben (AZ) , diese forme ich um (AZ5) und möchte die Ausgang Buchstaben (AZ) mit den modifizierten Buchstaben (AZ5) ersetzten. Danach möchte ich Org. Dateinamen mit den Neudateinamen umbenennen.

Zeile 37 macht mir Probleme, bekomme es einfach nicht gebacken wie AZ mit AZ5 ersetzt werden kann.
Egal wie ich es anstelle ob mit %AZ%=%AZ5% oder irgendwie anders, es funktioniert nicht.
Nehme ich die "Nacken" Buchstaben funktioniert es nicht.

Hoffe man kann mir bei dem "kleinen" Problem weiter Helfen.

Mein Code
01.
@echo off & setlocal enabledelayedexpansion & title %~n0 
02.
cls 
03.
 
04.
echo.>1234ABCD5678.log 
05.
echo.>00Blub00.log 
06.
 
07.
for /f "delims=" %%a in ('dir /b /a-d "*.log"') do ( 
08.
   set DateiName=%%a 
09.
   echo DateiName: !DateiName! 
10.
    
11.
     :: Zahlen filtern 
12.
     for /f "delims=1234567890 tokens=1,2" %%i in ("%%a") do ( 
13.
     :: Nur Buchstaben 
14.
     set AZ=%%i 
15.
     echo Buchstaben: !AZ! 
16.
     echo. 
17.
18.
 
19.
   :: Extrahieren    
20.
   set AZ1=!AZ:~0,1! 
21.
   set AZ2=!AZ:~1,1! 
22.
   set AZ3=!AZ:~2,1! 
23.
   set AZ4=!AZ:~3,1! 
24.
   echo AZ1: !AZ1! 
25.
   echo AZ2: !AZ2! 
26.
   echo AZ3: !AZ3! 
27.
   echo AZ4: !AZ4! 
28.
   echo. 
29.
    
30.
   :: Zusammensetzen 
31.
   set AZ5=!AZ1!-!AZ2!-!AZ3!-!AZ4! 
32.
   echo AZ5: !AZ5! 
33.
   echo. 
34.
    
35.
   :: Ersetzten  
36.
   REM set NeueDateiname:!DateiName:ABCD=-A-B-C-D-! 
37.
   set NeueDateiName:!DateiName:!AZ!=!AZ5!! 
38.
   echo NeueDateiname: !NeueDateiname! 
39.
    
40.
   :: Umbenennen 
41.
   echo ren %DateiName% %NeueDateiName% 
42.
43.
pause
Mitglied: Gersen
16.07.2014 um 13:51 Uhr
Hallo,

01.
SET NeueDateiName=!DateiName:%AZ%=%AZ5%!
vielleicht?

Gruß,
Gersen
Bitte warten ..
Mitglied: batchnewbie
16.07.2014 um 14:04 Uhr
leider nicht, als Ausgabe kommt:

NeueDateiName: DateiName:=
Bitte warten ..
Mitglied: Gersen
16.07.2014 um 14:22 Uhr
Neues Spiel, neues Glück...

Folgendes hat eben geklappt:

01.
call set NeueDateiName=%%DateiName:%AZ%=%AZ5%%%
Bitte warten ..
Mitglied: batchnewbie
16.07.2014 um 14:39 Uhr
Bei mir funktioniert das nicht
Bitte warten ..
Mitglied: Gersen
16.07.2014, aktualisiert um 15:22 Uhr
Falscher Post, sorry!
Bitte warten ..
Mitglied: rubberman
LÖSUNG 16.07.2014, aktualisiert um 20:50 Uhr
Hallo batchnewbie,
Was glaubst du wie die cmd mit den ganzen Ausrufezeichen umgeht?
set NeueDateiName:!DateiName:!AZ!=!AZ5!!
Bedenke dass Ausrufezeichen paarweise behandelt werden. Also !DateiName:! als Variable, !=! als Variable und !! als ... ähm ... nix. Und was soll der Doppelpunkt hinter NeueDateiName? (=?)
ungetestet:
for /f "delims=" %%i in ("!AZ!") do for /f "delims=" %%j in ("!AZ5!") do set "NeueDateiName=!DateiName:%%i=%%j!"
Dass Prozentzeichenexpansion in Zeile 41 auch nicht funktionieren kann, sollte einleuchten.

Grüße
rubberman
Bitte warten ..
Mitglied: batchnewbie
16.07.2014 um 20:49 Uhr
Danke ja das rennt so, aber wieso muss das per doppelte Schleife durchlaufen?
Wieso kann man das nicht so wie hier: Replace - Replace a substring using string substitution machen?
Mit einfachen set NeueDateiname=!DateiName:ABCD=A-B-C-D! funktioniert es ja, werden die beiden Variablen (AZ & AZ5) nicht gelesen?

Übrigens kA wie der Doppelpunkt da hingekommen ist (wohl bei editieren passiert ), es muss selbstverständlich Gleichzeichen rein (Zeile 36 & 37 hinter NeueDateiname). So habe ich es auch hier getestet...


Em ja, die Zeile 41 muss natürlich mit Anführungszeichen laufen...und nicht per Prozentzeichen 0
Bitte warten ..
Mitglied: rubberman
16.07.2014 um 21:13 Uhr
Mit einfachen set NeueDateiname=!DateiName:ABCD=A-B-C-D! funktioniert es ja, werden die beiden Variablen (AZ & AZ5) nicht gelesen?
Nein, sie werden nicht gelesen. Wie die Zeile interpretiert wird, habe ich dir oben gezeigt. Jeweils der Ausdruck zwischen zwei aufeinanderfolgenden Ausrufezeichen wird versucht als Variable zu expandieren. Nochmal in Farbe zum besseren Verständnis:
!DateiName:!AZ!=!AZ5!!
Jetzt klar geworden?

Grüße
rubberman
Bitte warten ..
Mitglied: batchnewbie
16.07.2014 um 21:49 Uhr
Jop, jetzt habe ich es verstanden was so paar Farben bewirken können
Jetzt verstehe ich auch die zwei Schleifen..., anders bekommen man die Variablen ja nicht gelesen!!

Danke
Bitte warten ..
Ähnliche Inhalte
Windows Tools
Dateinamen automatisch umbenennen
Frage von chrisschmitt93Windows Tools2 Kommentare

Hallo zusammen, könnte mir freundlicherweise einer ein Skript zukommen lassen , das automatisch alle Ä in AE ,Ö ind ...

Batch & Shell
Dateinamen mit Powershell umbenennen ???
gelöst Frage von lexuraBatch & Shell2 Kommentare

Hallo, Ich benötige ein Script mit dem ich eine MP3 Sammlung umbenennen kann. Die Dateien lauten im Ursprung alle ...

Batch & Shell
Batch - Dateinamen auslesen, umbenennen + dreistellige Zahl vor bisherigen Dateinamen setzen.
Frage von citroendsvierBatch & Shell4 Kommentare

Hallo und guten Morgen, ich möchte für drei Ordner (2011, 2013, 2014) eine Batch schreiben, die die darin enthaltenen ...

Batch & Shell
Ordner nach 8-Stelligen Dateinamen durchsuchen und umbenennen
gelöst Frage von koeson8Batch & Shell6 Kommentare

Liebes Forum! Ich bin jetzt schon seit geraumer Zeit auf der Suche nach einer Lösung für folgendes Problem: Batch-Datei ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 6 StundenBatch & Shell7 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 8 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...