Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Dateinamen per Batch verkürzen

Frage Entwicklung Batch & Shell

Mitglied: 106942

106942 (Level 1)

02.06.2012 um 19:23 Uhr, 3687 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
Sonstige Systeme
Batch Dateinamen zerlegen (5)

Frage von Mummel zum Thema Sonstige Systeme ...

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

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen umschreiben batch (5)

Frage von jocheng zum Thema Batch & Shell ...

Windows 10
gelöst Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette (13)

Frage von vbaGast zum Thema Windows 10 ...

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

(4)

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(8)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows Server
Seit IP Umstellung DC DNS Fehler (29)

Frage von Yaimael zum Thema Windows Server ...

Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (16)

Frage von Voiper zum Thema Weiterbildung ...