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
Kommentar vom Moderator Biber am 30.06.2009 um 16:13:37 Uhr
<OT>
...Ziel ist es, die Dateien in ein anderes Verzeichnis zu kopieren und dabei umzubennen,
Notiz: RGC --> #407
</OT>
GELÖST

Dateinamen kürzen und vereinheitlichen

Frage Entwicklung Batch & Shell

Mitglied: Teasy30

Teasy30 (Level 1) - Jetzt verbinden

30.06.2009, aktualisiert 16:31 Uhr, 4389 Aufrufe, 10 Kommentare, 1 Danke

Hallo Gemeinde,

ich habe versucht, mir mit den zahlreich vorhandenen Forenbeiträgen selbst zu helfen, aber so ganz das Passende habe ich leider nicht gefunden.
Vielleicht kann mir ja einer den richtigen Denkansatz liefern.

In einem Verzeichnis werden täglich eine Anzahl Dateien gespeichert. Die Dateien haben als Dateiname immer folgenden Aufbau:

Variabler Text ... XXXX-YYYYYY.PDF

Der variable Text kann aus einem oder mehreren Wörtern bestehen und soll weg.
XXXX ist eine 4-stellige Jahreszahl (2008, 2009, 2010,...)
YYYYYY ist (derzeit) eine 6-stellige Zahl, kann aber in absehbarer Zeit eine 7. Stelle bekommen

Ziel ist es, die Dateien in ein anderes Verzeichnis zu kopieren und dabei umzubenennen, dass alles ab XXXX-YYYYYY.PDF stehen bleibt.


Also aus den Dateinamen:

Hund 2008-122332.PDF
Katze 2009-122555.PDF
Esel Kuh 2009-122566.PDF


sollen diese Dateinamen werden:

2008-122332.PDF
2009-122555.PDF
2009-122566.PDF


Wie kann ich hier vorgehen, um das in einer Batch Datei auszuführen?
Mitglied: miniversum
30.06.2009 um 16:21 Uhr
Vorausgesetzt dieser frei wähnbare text enthält kein - dann köntne es so gehen (ungetestet):

01.
@echo off 
02.
set "verz=c:\verzeichnis" 
03.
FOR /F "tokens=1,2 delims=-" %%i in ('dir /B "%verz%"\*.*') do call:umbennen "%%i" "%%j" 
04.
goto:eof 
05.
 
06.
:umbennen 
07.
set "firstpart=%~1" 
08.
rn "%verz%\%~1-%2" "%firstpart:~-4%-%2" 
09.
goto:eof
Bitte warten ..
Mitglied: LotPings
30.06.2009 um 16:54 Uhr
Zitat von miniversum:
Ich hab ja nur darauf gewartet das Biber auf das umbennen anspringt

Hier ist mein Ansatz der nur auf Jahreszahl im Bereich mit Strich reagiert.

01.
@Echo off&Setlocal 
02.
Set "Base=D:\Test" 
03.
Set "Dest=D:\Test\Ergebnis" 
04.
Set Ext=pdf 
05.
Pushd %Base% 
06.
For /L %%J in (2008,1,2015) Do For /F "Delims=" %%A in ( 
07.
'Dir /B /A-D "*%%J-*.%Ext%" 2^>NUL ') DO Call :Process %%J "%%~fA" "%%~nA" 
08.
Pause 
09.
goto :eof 
10.
:Process 
11.
Set "Name=%~3" 
12.
Call Set Nummer=%%Name:*%1-=%% 
13.
Set NeuerName=%1-%Nummer%.%Ext% 
14.
Echo Copy %2 "%Dest%\%NeuerName%"
Edit war ungestestet und hatte auch einen Dreher bei for /L, ein fehlendes %. Fehlermeldung unterdrückt. Alles korrigiert

Gruß
LotPings
Bitte warten ..
Mitglied: bastla
30.06.2009 um 17:16 Uhr
@miniversum
Hast Du Dich so darauf konzentriert, Biber mit der Zeile 6 eine Freude zu machen, dass der "-" nach "delims=" auf der Strecke geblieben ist?

Zu "rn" sage ich aber nix (außer vielleicht, dass vor das %~1 ein %verz%\ passen könnte, vor allem, wenn Du oben das "Datei.txt" durch ein entsprechendes "dir /b ..." ersetzen würdest) ...

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
30.06.2009 um 18:29 Uhr
Nein das kommt daher, dass ich faul war und das For kopiert habe, dann mein Kollege was von mir wollte und ich dann nicht fertig editiert habe. Das kommt vom ablenken lassen. Hätte er mir wenigstens gesagt das sich die eine Frau da unten gesonnt hat. Aber nein. Sowas seh ich natürlich erst beim heim gehen. Naja aber ich komme vom Thema ab... Ich korrigiere es oben.
Bitte warten ..
Mitglied: Teasy30
30.06.2009 um 18:53 Uhr
> Zitat von miniversum:
Ich hab ja nur darauf gewartet das Biber auf das umbennen
anspringt


tschuldigung ... dachte, das muss man hier so schreiben
Bitte warten ..
Mitglied: Teasy30
30.06.2009 um 18:55 Uhr
Zitat von miniversum:
Vorausgesetzt dieser frei wähnbare text enthält kein - dann
köntne es so gehen (ungetestet):

01.
@echo off 
02.
> set "verz=c:\verzeichnis" 
03.
> FOR /F "tokens=1,2 delims=-" %%i in ('dir /B 
04.
> "%verz%"\*.*') do call:umbennen "%%i" 
05.
> "%%j" 
06.
> goto:eof 
07.
>  
08.
> :umbennen 
09.
> set "firstpart=%~1" 
10.
> rn "%verz%\%~1-%2" "%firstpart:~-4%-%2" 
11.
> goto:eof


Danke ... die erste Version hatte mich deutlich überfordert ... aber jetzt verstehe ich, worauf es hinausläuft ... werde das morgen mal testen und in mein script einbauen
Bitte warten ..
Mitglied: Biber
30.06.2009 um 20:31 Uhr
Moin Teasy30,

auch von mir ein Willkommen im Forum, Glückwunsch zu dieser leicht zu merkenden Memberid und danke für das Korrigieren dieses Umbenamsen-Unwortes.

Ich habe eben gerade eine Nachricht bzw. eine Nachfrage erhalten, wieso ihr da so ein "Projekt" draus macht.
Weil - wenn der zu erhaltende Namensteil doch immer jetzt 15, in Zukunft irgendwann 16 Zeichen wären, dann ginge es doch mit einer Zeile vom CMD-Prompt
01.
for %a in (*.pdf) do set "name=%a" & move "%a" Zielverzeichnis\%name:~-15% (In Zukunft dann vielleicht :~-16)
Die Idee ist schon gut, aber es funktioniert nur, wenn auch
  • "DelayedExpansion" gesetzt ist per "CMD /V" oder Registry
  • oder vor der FOR-Anweisung gesetzt wird (Setlocal EnableDelayedExpansion & FOR ...)

Aber zur Abrundung und zur Demo will ich Dir die Alternative zumindest weitergeben:
[Demo am CMD-Prompt]
01.
>echo blubb>"Hund Katze Maus 2008-122332.pdf" 
02.
>echo bla>"Hein Blöd 2009-123456.pdf" 
03.
 
04.
>for %a in ("H* *.pdf") do @set "name=%a" & @echo move "%a" Zielverzeichnis\!name:~-15! 
05.
move "Hein Blöd 2009-123456.pdf" Zielverzeichnis\2009-123456.pdf 
06.
move "Hund Katze Maus 2008-122332.pdf" Zielverzeichnis\2008-122332.pdf
Wäre, wenn Du es eher gelegentlich brauchst, ein netter Plan B.

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
30.06.2009 um 20:51 Uhr
Zitat von Biber:
Ich habe eben gerade eine Nachricht bzw. eine Nachfrage erhalten,
wieso ihr da so ein "Projekt" draus macht.

Weil viel = besser ist und es wichtig aussieht und als ob viel Hirnschmalz reingesteckt worden wäre und so.
Hihi.
Und außerdem sollte es ja ne Batch Datei sein und überhaubt..
GRINS.

Ok ok genug gespammt... Ich leg mich wieder hin.
Bitte warten ..
Mitglied: Teasy30
30.06.2009 um 21:15 Uhr
Zitat von Biber:
Moin Teasy30,

auch von mir ein Willkommen im Forum, Glückwunsch zu dieser
leicht zu merkenden Memberid und danke für das Korrigieren dieses
Umbenamsen-Unwortes.

Ich habe eben gerade eine Nachricht bzw. eine Nachfrage erhalten,
wieso ihr da so ein "Projekt" draus macht.
Weil - wenn der zu erhaltende Namensteil doch immer jetzt 15, in
Zukunft irgendwann 16 Zeichen wären, dann ginge es doch mit
einer Zeile vom CMD-Prompt
01.
for %a in (*.pdf) do set "name=%a" & move 
02.
> "%a" Zielverzeichnis\%name:~-15% (In Zukunft dann vielleicht 
03.
> :~-16) 
04.
> 


Danke für das herzliche Willkommen und gern geschehen ... manchmal ist der Finger wirklich schneller als das Hirn ...

warum ich das lieber "perfekt" haben will? ganz einfach, in 3 Monaten oder 3 Jahren oder wann auch immer weiss keiner mehr, wo man welche Zahl ändern muss ... ausserdem bin ich ein wenig fasziniert, was mit dieser "holprigen" Programmiersprache tatsächlich machbar ist, wenn man sich ein wenig länger damit beschäftigt ... wird allerdings noch ein Weilchen dauern, bis ich halbwegs in der Lage sein werde, so was auch nur annähernd selbst zu stricken.
Bitte warten ..
Mitglied: Biber
30.06.2009 um 21:40 Uhr
Moin Teasy30,

*lach*
okay, mit der Forderung nach Lesbarkeit, Wartbarkeit und nach Möglichkeit sogar hin und wieder einer eingestreuten Kommentarzeile rennst Du bei mir offene türen ein.
Andererseits ... ich schieße gerne solche CMD-Oneliner schon deshalb ganz gerne mal ab, weil
  • erfahrungsgemäß ein Batch, der vor 4 Monaten tadellos funktioniert hat und den ich HEUTE wieder blind anstarte mit hoher Wahrscheinlichkeit auf die Bretter geht - Pfade oder Konventionen haben sich geändert etc
  • ich noch größere Schwierigkeiten habe, abgespeicherte Bätche überhaupt wiederzufinden... auf den Rechnern, auf denen ich abwechselnd arbeite

Aber BTW - auch an einer anderen Aussage ist zu erkennen, dass Du im IT-Bereich unterwegs bist:
warum ich das lieber "perfekt" haben will..
Es sprach niemand von "perfekt"... es ging um "Projekt".
Wer so etwas per Freudscher Fehlschaltung gleichsetzt, der MUSS einfach ITler sein...

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien in Abhängigkeit des Dateinamens auf eine bestimmte Zeichenzahl kürzen und verschieben
gelöst Frage von Booster07Batch & Shell11 Kommentare

Hallo zusammen, ich habe zwei Probleme, bei denen ich auf Eure kompotente Hilfe hoffe: Problem 1: Ich habe sehr ...

Batch & Shell
Beim Batchaufruf durch UAC.ShellExecute nur kurze Dateinamen beim aktuellen Verzeichnis
gelöst Frage von anmelderBatch & Shell1 Kommentar

Hallo, meine Batch muß Adminrechte haben und ich benötige den gesamten Pfad in dem die Batch ausgeführt wird. Die ...

Windows 7
Dateinamen kürzen in Win7pro64b mit 1-4a-Rename ver 1.56.0
gelöst Frage von wiedhalmWindows 73 Kommentare

Gutern Abend! Mein Problem: Eine überspielte Bach CD liefert mir im mp3-Format sehr lange Dateinamen, welche sich im Win7-Explorer ...

Windows Server
Korrektur von Dateinamen
gelöst Frage von petereWindows Server2 Kommentare

Hallo, ich habe eine Unmenge an Dateien bekommen, die ungültige Zeichen im Dateinamen haben (z.B. +, sonst ist mir ...

Neue Wissensbeiträge
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 15 MinutenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 31 MinutenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 12 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 19 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...