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, 3648 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

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

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

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 ...