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

Mitglied: Teasy30

Teasy30 (Level 1) - Jetzt verbinden

30.06.2009, aktualisiert 16:31 Uhr, 4402 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

USB Maus und Tastatur versagen Dienst unter Windows 10

Tipp von hardykopff vor 7 MinutenWindows 10

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 StundenAdministrator.de Feedback8 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 20 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...