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

Probleme beim umbennenen der Dateierweiterung

Frage Entwicklung Batch & Shell

Mitglied: RippchenMitKraut

RippchenMitKraut (Level 1) - Jetzt verbinden

01.02.2006, aktualisiert 09.02.2006, 4673 Aufrufe, 18 Kommentare

Hallo...


als erstes möchte ich mal sagen das dies hier ein richtig gutes Forum ist, dass mir schon oft geholfen hat.

Jetzt habe ich aber ein Problem, bei dem ich einfach nicht weiterkomme. Ich soll bei mehreren Dateien die im 8+3 Format von einem Programm ausgegeben werden und von einem andern Programm gelesen werden die Dateierweiterung, also die 3 Buchstaben nach dem Punkt umbenennen. Jetzt bitte nicht gleich los brüllen, das umbenennen von Dateien ist hier doch schon abgewickelt und ich soll doch erstmal lernen mit einem Forum umzugehen. Denn mein Problem ist nicht das eigentliche umbenennen. Sondern, das es ich hierbei 1 um die Dateierweiterung handelt und 2. das ich die Dateierweiterung in fortlaufende Nummern umbenennen soll. Das heißt und jetzt kommen wir zu meinem eigentlichen Problem. Das eine Programm gibt die eine Dateien aus im 8+3 Typ also z.B. ab210106.xyz , ac210106.xyz , ad210106.xyz .... raus und ich soll nun alle Dateien die in einem Ordner sind der Reihe nach in 210106.001 , 210106.002 , 210106.003 ... umbenennen. Das soll dann eine Batch-Datei machen. Nun ist mein Problem, dass das Programm immer an die höchste Zahl anreihen soll. Also alle folgenden Dateien sollen als Dateierweiterung immer an der höchsten zahl anhängen. Es kann aber sein das ältere Dateien die nicht mehr gebraucht werden gelöscht werden, d.h. Das zwischendrin auf einmal Dateien fehlen können. Also z.b bis .043 sind alle da und dann geht es aber erst wieder mit der .052 weiter. Trotzdem soll die Batch-Datei gewährleisten, dass bei der höchsten Zahl weiter gemacht wird bis .999 und dann wieder von vorne. Ich hoffe ich habe mich halbwegs klar ausgedrückt, was mein Problem ist.

Jetzt möchte ich noch was zu den weiteren Daten sagen. Also es handelt sich um einen Server auf WindowsNT Basis und es soll keine weiter Software installiert werden (warum auch immer?!?) und der DAU soll nur einen einen Knopf drücken um die Dateien umzubenennen.

Vielen Dank schon mal
Bis neulich...
Mitglied: maneich
02.02.2006 um 03:39 Uhr
Hallo,

das ist mit einer Batch doch zu lösen.

1. Verzeichnis mit den numerischen Extensions umgekehrt sortieren
mit dir /b /oe Verzeichnis also
2. Verzeichnis zum mit ursprünglichen Extensions ändern

for /f %%i in ('dir /b /oe Verzeichnis_neu') do call:ext_num %%i

:ext_num
set i = 0
set x=%1
set y=%x:~9, 3%
:num
for /f %%k in ('dir /b Verzeichnis_alt') do (
set /a y=%y%+1
set z = %1
ren %%i Verzeichnis_neu\%z:~3, 7%%y%
)
goto EOF

Konnte das jetzt nicht testen, aber die Richtung müßte stimmen.
Ich bin hier von 2 Verzeichnissen ausgegangen, ansonsten anpassen.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: marc-1303
02.02.2006 um 08:25 Uhr
Hallo RippchenMitKraut

Wenn Du, so wie ich, mit Batchen nicht so der Guru bist habe ich Dir ein Tool, dass Dir ganz bestimmt weiter hilft.

Es nennt sich RenameMaster. Fortlaufende nummerierung mit der Rename-Funktion ist möglich. Du kannst sowohl vor oder nach dem Punkt ändern.

Hier der Link zu Download: http://www.snapfiles.com/get/renamemaster.html

Ein Feedback wäre nett.

Gruss
Marc
Bitte warten ..
Mitglied: RippchenMitKraut
02.02.2006 um 13:57 Uhr
hiho...

danke für die schnellen Antworten. Ich bin morgen wieder im Büro. Dann werde ich beides mal testen und werde dann am Montag mal genaueres feedback geben.

Lg
RMK
Bitte warten ..
Mitglied: marc-1303
02.02.2006 um 14:01 Uhr
Hallo RippchenMitKraut

Habe eben festgestellt, dass ich Dir eine "falschen" Link gesendet habe.
Das Programm RenameMaster kann zwar viel; Extensions hochzählen aber nicht.

Mit "Bulk Rename Utility" sollte es aber möglich sein. Hier der Link.

http://www.bulkrenameutility.co.uk/Screenshots.php

Gruss
Marc
Bitte warten ..
Mitglied: RippchenMitKraut
05.02.2006 um 18:12 Uhr
Tach,

danke nochmal für die schnelle Antwort. Deine Einführung hat mir sehr geholfen. Nur soll ich jetzt die Batchdatei so abändern, dass sie alle Dateien in einem Ordner umbenennt. Also immer die Extension raufzählt und zwar immer dann wen sie ausgeführt wird. Dabei ist es dann egal, ob sie vorhandene Nummerierungen durcheinander bringt. ich habe es leider nicht hin bekommen, das er die letzten 3 (die Extension) umbennent und dann bei 999 wieder anfängt. Soll ich das über tokens machen?!? Wäre cool wenn du antwortest, danke schonmal.

lg
RMK

p.s. das empfohlene Tool darf ich leider nicht benutzen, weil aus Sicherheitsgründen keine Software auf den Rechner installiert werden darf.
Bitte warten ..
Mitglied: maneich
05.02.2006 um 20:02 Uhr
Hallo,


for /f "tokens=2 delims=." %%i in ('dir /b /o-e Verzeichnis_neu') do call:ext_num %%i
goto eof

:ext_num
set y=%1
for /f "tokens=1,2 delims=." %%k in ('dir /b /od Verzeichnis_alt') do (
if %y%==999 set y=0
set /a y=%y%+1
set z = %%k
move /y Verzeichnis_alt\%%k.%%l Verzeichnis_neu\%z:~3%.%y%
)
goto eof


Teste das mal.


Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: RippchenMitKraut
05.02.2006 um 22:16 Uhr
Nabend...

super vielen dank für deine schnelle antwort. Ich werde mich gleich Morgen dran machen. Ich brauch es zwar auch nur für ein Verzeichniss aber das werd ich dann schon hinbekommen..
danke nochmal
lg
RMK
Bitte warten ..
Mitglied: RippchenMitKraut
06.02.2006 um 21:09 Uhr
Nabend,

so ich hab mich mal weiter dran gemacht und bin bis hier gekommen:

rem @echo off

set n=001

for %%i in (C:\...\Test\*.*) do call:ext_num %%i
:ext_num
set i=0
set z=%1
if %n%==999 set n=001
ren C:\temp\test\%z:~3, z%%n%
set /a n=%n%+1
)

rem echo off

das echo hab ich für die Anzeige in cmd raus genommen. So mein Problem ist jetzt die ren- Zeile die will nicht da sagt er immer syntaxerror?!? wäre cool wenn du dir die Sache nochmal anschaun könntest.
Ein weiters Problem das sich ergeben hat ist das er zwar zählt aber halt nur 1,2,3,4,.. und nicht 001,002,003.... und da wollte ich mal fragen ob ich das mit 3 if abfragen machen kann und ob man in Batch so was abfragen kann wie wenn die zahl 1 stellig ist dann hänge 00 davor, wenn sie 2 stellig ist hänge 0 davor... schau mal vielleicht hast du ja da eine Idee...
danke schon mal
lg
RMK
Bitte warten ..
Mitglied: Biber
06.02.2006 um 21:54 Uhr
Moin RMK,
ersetz mal bitte den Batch hiermit:
@echo off & setlocal
set /a "n=1"
for %%i in (C:\...\Test\*.*) do call:ext_num %%~ni %%~xi
:ext_num
if %n%==999 set /a "n=1"
Set "cn=000%n%"
Set "cn=%cn:~-3,3%"
ren C:\temp\\test\%1%2 %1.%cn%
set /a n=%n%+1
)


HTH Biber
Bitte warten ..
Mitglied: RippchenMitKraut
07.02.2006 um 10:39 Uhr
hiho..

habs versucht.. aber in deiner ren zeile ist ein Fehler .. da kommt immer syntaxerror...

lg
RMK
Bitte warten ..
Mitglied: Biber
07.02.2006 um 10:50 Uhr
Uupps, sorry, RMK,

ich hatte eine Tilde ("~") vergessen... habs oben korrigiert.
Okay, getestet hab ich es trotzdem nicht - aber vom Bauch her sollte es laufen.

Gruß Biber
Bitte warten ..
Mitglied: RippchenMitKraut
07.02.2006 um 11:14 Uhr
hiho...

erstmal Danke für deine schnelle Antwort.
soweit so gut.. nur er benennt jetzt auch den ordner mit um!! was nicht so sein sollte!?!
lg
RMK
Bitte warten ..
Mitglied: Biber
07.02.2006 um 11:30 Uhr
*lacht*.. Shit happens... sorry.

Erklär bitte noch mal in zwei Zeilen Deine Verzeichnisstruktur... die habe ich offensichtlich falsch verstanden.
Wie heißt denn das "C:\...\Test\*.*" nun wirklich?
Und von wo rufst Du den Batch auf?

LG zurück
Biber
Bitte warten ..
Mitglied: RippchenMitKraut
07.02.2006 um 11:44 Uhr
hiho...

also sag wir mal die Datein liegen in C:\temp\test\*.* und die Batch in C:\temp\batch\ und die batch benennt alle datein um und als letztes auch noch den Ordner. Also wenn ich 15 Datein habe dann heisst der Ordner dann .016

lg
RMK
Bitte warten ..
Mitglied: Biber
07.02.2006 um 13:28 Uhr
Okay, ich glaub, ich habe es jetzt verstanden.
Neuer Versuch - bitte ersetzen:

ALT: for %%i in (C:\...\Test\*.*)
NEU: For /F %%i in ('dir /b /A:-d C:\...\Test\*.*')

Der DIR-Parameter "/A-d" bedeutet "nur Dateien, keine Verzeichnisse".

Danke für Deine Geduld.

Biber
Bitte warten ..
Mitglied: RippchenMitKraut
09.02.2006 um 09:16 Uhr
Moin,

sorry, wenn ich mich erst jetzt melde. Der neuste Stand ist, dass unter xp alles läuft. Achja ich habe das problem der umbenennung mit einem goto :end nach der schleife gelöst. Aber auf einem NT Rechner läuft es nicht so wie es sollte. Irgendwie mag er die Zeile Set "cn=%cn:~-3,3% nicht. Die führt er nicht aus. Was dazu führt, dass die Datei nach dem Punkt nichts zustehen hat also: aa000000. und das ist ja nicht so ganz Sinn der Sache. Ich habe versucht das mit 3 if Schleifen zu umgehen aber er mag <= nicht da sagt er immer Syntayfehler. Das sollte doch eigentlich möglich sein. Könntest du mir da nochmal helfen. Danke
lg
RMK
Bitte warten ..
Mitglied: RippchenMitKraut
09.02.2006 um 11:30 Uhr
hi

Letzter Stand

:ext_num
if %n%==999 set /a "n=1"
set "cn=oo%n%"
if %n% LEQ 9 set "cn=00%n%"
If (%n% GTR 9) & (n LEQ 99) set "cn==%n%
if %n% GTR 99 set "cn=%n%"

ren C:..................... ................

nur das und(&) will nicht !?! kannst du mir da helfen oder mit sagen wie das mit else geht?

lg
RMK
Bitte warten ..
Mitglied: Biber
09.02.2006 um 14:49 Uhr
Also, RMK,
ich habe keine NT-Installation mehr im näheren Umkreis, und habe nur noch vage Vermutungen über die Unterschiede im CMD.exe-verhalten unter NT und W2000/XP.

Aber wenn die NT-CMD.exe
- ein Set /A verarbeiten, also schon rechnen kann (Test am Prompt: "Set /a 17+4")
- die Vergleichsoperatoren LEQ und GTR schon kennt (Test: "if 1 LEQ 3 echo hallo")

...dann wäre mein nächster Versuch:
...
if %n%==999 set /a "n=1"
if %n% LEQ 9 set "cn=00%n%"
If %n% GTR 9 if %n% LEQ 99 set "cn=0%n%
If %n% GTR 99 set "cn=%n%

ren C:.....

HTH Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Windows 10
gelöst VPN Verbindung Probleme (7)

Frage von Yeter2 zum Thema Windows 10 ...

Windows 10
Windows 10 Start-Probleme - Hilfe (9)

Frage von clragon zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...