Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 30.11.2011 um 14:07:05 Uhr
Dateien mit delims und tokens umbennenen
Set /a rgc +=1
#779
GELÖST

Dateien mit delims und tokens umbennenen

Frage Entwicklung Batch & Shell

Mitglied: majcho

majcho (Level 1) - Jetzt verbinden

30.11.2011, aktualisiert 14:07 Uhr, 3450 Aufrufe, 3 Kommentare

Hallo Experten,

habe nach der Anleitung Tutorial zur FOR-Schleife mir ein Batch gebastelt, indem ich .html Dateien umbenenne. Das funktioniert irgendwie nicht. Was mache ich falsch?

Folgende Dateien sollen mit selben Namen angeglichen werden:

jpg-datei: 198_cng_083_1846.jpg
html-datei: sid_198_1846.html soll in 198_cng_083_1846.html umbenannt werden

Folgender code ergibt jedoch ein falsches Ergebnis:

01.
:: %e = 1 = sid 
02.
:: %f = 2 = Akn 
03.
:: %g = 3 = AK 
04.
:: %h = 4 = L 
05.
FOR /F "delims=_ tokens=1,2,3,4" %%e in ('dir /a-d /b /s "*.jpg"') do ( 
06.
copy sid_%%~ne_%%~nh.html %%~ne_%%~nf_%%~ng_%%~nh.html)
Kann mir jemand helfen?
Mitglied: BigWim
30.11.2011 um 09:40 Uhr
Moin majcho,

Folgender code ergibt jedoch ein falsches Ergebnis:
Dann mußt Du das mal näher beschreiben, denn wenn ich Deine Schleife ausführe mit dem genannten Beispiel, kann ich keinen Fehler ausmachen.

Markus
Bitte warten ..
Mitglied: majcho
30.11.2011 um 13:32 Uhr
Das sind die Dateien und so klappt es. Die Tokenauflistung gibt mir jedoch Rätsel auf.

Warum muss tokens 1 mit 2 beginnen, wenn es sich um den ersten Teil des Strings handelt?

01.
FOR /F "delims=_ tokens=2,3,4,5" %%e in ('dir /a-d /b /s "*cng*.jpg"') do ( 
02.
copy sid_%%~ne_%%~nh.html %%~ne_%%~nf_%%~ng_%%~nh.html)
jpg-datei: 198_cng_083_1846.jpg
html-datei: sid_198_1846.html soll in 198_cng_083_1846.html umbenannt werden
...
339_cng_086_1381.jpg
html-datei: sid_339_1381.html soll in 339_cng_086_1381.html umbenannt werden

01.
198_cng_083_1846.jpg 
02.
198_cng_083_1847.jpg 
03.
198_cng_083_1848.jpg
Bitte warten ..
Mitglied: Biber
30.11.2011 um 19:10 Uhr
Moin majcho,

ich komme beim Testen bzw. Nachkaspern am CMD-Prompt mit den Tokens 2,3,4,5 zu keinem sinnvollen Ergebnis.

So funktioniert es bei mir (am CMD-Prompt):
## Vorbereitung/Testdateien 
d:\temp\test>for %i in (198_cng_083_1846.jpg sid_198_1846.html 339_cng_086_1381.jpg sid_339_1381.html) do @echo %i 
198_cng_083_1846.jpg 
sid_198_1846.html 
339_cng_086_1381.jpg 
sid_339_1381.html 
 
d:\temp\test>for %i in (198_cng_083_1846.jpg sid_198_1846.html 339_cng_086_1381.jpg sid_339_1381.html) do @echo.>%i 
 
d:\temp\test>dir /b 
198_cng_083_1846.jpg 
339_cng_086_1381.jpg 
sid_198_1846.html 
sid_339_1381.html 
 
## test - Dateien liegen im aktuellen Pfad - keine Pfadangabe im DIR-Befehl 
d:\temp\test>FOR /F "delims=_ tokens=1-4" %e in ('dir /a-d /b /s "*cng*.jpg"') do @echo DEMO ren  %~dpesid_%~ne_%~nh.html %~ne_%f_%g_%~nh.html 
DEMO ren  d:\temp\test\sid_198_1846.html 198_cng_083_1846.html 
DEMO ren  d:\temp\test\sid_339_1381.html 339_cng_086_1381.html 
 
d:\temp\test>e: 
## test - von anderem lw/pfad aufgerufen 
E:\>FOR /F "delims=_ tokens=1-4" %e in ('dir /a-d /b /s "D:\temp\test\*cng*.jpg"') do @echo DEMO ren  %~dpesid_%~ne_%~nh.html %~ne_%f_%g_%~nh.html 
DEMO ren  D:\temp\test\sid_198_1846.html 198_cng_083_1846.html 
DEMO ren  D:\temp\test\sid_339_1381.html 339_cng_086_1381.html
Anmerkung:
Du musst natürlich nur den ersten Token [hier %e] mit %~ne von dem vorangestellten Laufwerk+Pfad befreien.
der zweite oder dritte Parameter %f und %g hat defaultmäßig kein Lw/Pfad vorangestellt (in diesem Fall, wenn erst Parameter 4 der letzte des Dateinamens ist)
Der letzte Tokens des "gesanten Dateinamens, hier also %h muss wieder mit %~nh von der Endung befreit werden.

ööööhm... zweimal lesen oder einfach zur Gegenprobe in der Demozeile jeweils (%e statt %~ne) und (%h statt %~nh) schreiben.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst SQL-Dateien sortieren, kombinieren und filtern (6)

Frage von derapfelsaft zum Thema Datenbanken ...

Windows 7
Temporäre Dateien im Profilordner belegen mehrere 100 GB (6)

Frage von sirhc4022 zum Thema Windows 7 ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (8)

Frage von ahaeuser zum Thema Windows Server ...