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
GELÖST

Dateinamen per Batch verkürzen

Frage Entwicklung Batch & Shell

Mitglied: 106942

106942 (Level 1)

02.06.2012 um 19:23 Uhr, 3661 Aufrufe, 6 Kommentare

Hallo Administrator-Gemeinde!

Ich habe ein, für mich unlösbares Problem.
Benötige eine batch, die mir Dateinamen verkürzt.
Ein System von mir generiert ".ace-Dateien" immer mit dem gleichen Schema:

B=Buchstabe
Z=Zahl
H=Hexadezimale Stelle (halt Zahl oder Buchstabe)

BEISPIEL einer dieser Dateiennamen:

BBZZZZBBBBHHHHHHHHHHH.ace
oder
BBZZZZZBBBBHHHHHHHHHHH.ace
Das ist der Standartfall, mit den Dateien ist alles ok.

Nun kommt es vor, dass unter gewissen Umständen (systemseitig, kann nicht geändert werden) die Dateien so aussehen:
BBZZZZBBBBHHHHHHHHHHH- 1.ace
oder
BBZZZZZBBBBHHHHHHHHHHH- 1.ace

Diese Dateien müssen bisher händisch umbenannt werden, so dass der Teil "- 1" wegfällt. Der Rest muss so bleiben wie er ist.

Geht sowas automatisiert per batch?
Kann man Dateien ab einem bestimmten Zeichen verkürzen, in meinem Fall der Bindestrich?

Vielen Dank euch!

Schöne Grüße
der Stefan!
Mitglied: pieh-ejdsch
02.06.2012, aktualisiert um 22:14 Uhr
moin Stefan,

das wäre für "*-*.ace" Dateien ab was für einem Ordner?
Rekursiv in etwa so: ( @echo simuliert nur was es täte wenn es nicht mehr da steht)
01.
for /r "D:\Ordner" %%i in (*-*.ace) do @for /f "delims=-" %%j in ("%%~ni" ) do @echo ren "%%~i" "%%~j%%~xi"
Gruß Phil
Bitte warten ..
Mitglied: pi314
03.06.2012, aktualisiert um 10:44 Uhr
Falls es sich um Linux/Unix o. ä. handelt, hier ein Beispiel mit awk, so wird auf das Trennzeichen "-" reagiert und alles dahinter mit ".ace" ersetzt:

01.
for datei in *-*ace 
02.
do 
03.
  mv $datei $(echo $datei | awk -v FS="-" '{print $1}').ace 
04.
done

so long,
pi314
Bitte warten ..
Mitglied: 106942
03.06.2012 um 11:36 Uhr
Hey,

vielen Dank für die super schnelle Hilfeleistung!
Also es handelt sich nicht um Unix/Linux sondern um Windows.

Das Script von Phil klappt wunderbar!!!
Nur leider hatte ich einen kleinen Denkfehler und ein wichtiges Detail unterschlagen.
Kann man bei den Dateien mit "- 1" den vorhergehenden (nur Einen) HEX-Buchstaben durch ein "X" ersetzen?
Soll heißen, dass nach der Ausgabe nur noch 10 HEX-Werte dastehen gefolgt von einem "X" und dann .ace

Habe selbst schon am Quelltext ein bissl rumgespielt, nur leider verstehe ich nicht alle Argumente und Variablen, was es mir nicht ganz einfach macht, das selbst zu lösen...

Also das soll dann so aussehen:

Ursprungsdateien:

BBZZZZBBBBHHHHHHHHHHH- 1.ace
oder
BBZZZZZZBBBBHHHHHHHHHHH- 1.ace


gewünschte Ausgabe:

BBZZZZBBBBHHHHHHHHHHX.ace
oder
BBZZZZZZBBBBHHHHHHHHHHX.ace


Super vielen Dank euch!!!

Der Stefan
Bitte warten ..
Mitglied: Biber
03.06.2012, aktualisiert um 13:36 Uhr
Moin steffchen112,

willkommen im Forum.

Ein auf die neue Anforderungserkenntnis angepasster pieh-ejdsch-Plus-Schnipsel könnte z.B. so aussehen:
01.
-- AceUmbenamser.cmd 
02.
@echo off & setlocal enableDelayedExpansion 
03.
for /r "D:\Ordner" %%i in (*-*.ace) do ( 
04.
  for /f "delims=-" %%j in ("%%~ni" ) do ( 
05.
   Set "oldname=%%~nj"    
06.
   echo ren "%%~fi" !oldname:~,-1!X%%~xi 
07.
08.
)
-- wobei auch hier in der Zeile 06 erstmal das "ren" nur als "echo ren" simuliert wird.

Anmerkungen:
Großes Lob für die klare und übersichtliche Frageformulierung und die optische Aufbereitung. Vielen Dank.

Bitte beim nächsten Mal daran denken:
  • die Info "Ist für Windows oder ist für Linux" ist manchmal hier angebracht
  • "Batch" ist immer die Automatisierung wiederkehrender Abläufe nach bekannten Regeln. Wenn dir diese Regeln erst nach der ersten Prototyp-Fertigstellung so ganz vollständig einfallen: das kann im richtigen IT-Leben richtig teuer werden. Weil der beauftragte Coder ganz weit vorn neu anfangen muss und das bezahlt haben will.

Grüße
Biber
Bitte warten ..
Mitglied: pi314
03.06.2012 um 13:36 Uhr
Hm, Windows.. schade, aber man kann nicht alles haben

Aber mit cygwin funktioniert's auch unter Windows
Bitte warten ..
Mitglied: 106942
06.06.2012 um 14:54 Uhr
Hey Leute,

das script läuft super!!!

Vielen Dank dafür!!!

der Stefan!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Sonstige Systeme
Batch Dateinamen zerlegen (5)

Frage von Mummel zum Thema Sonstige Systeme ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...