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
Kommentar vom Moderator Biber am 29.02.2012 um 21:30:56 Uhr
Grummelnd verschoben von "Tools & Utilities" nach "Bätscht mir ma Shnell"
GELÖST

Per Batch Dateinamen nach X Zeichen abschneiden (Endung beibehalten!)

Frage Entwicklung Batch & Shell

Mitglied: uebeltat

uebeltat (Level 1) - Jetzt verbinden

29.02.2012, aktualisiert 21:33 Uhr, 9959 Aufrufe, 8 Kommentare

Hallo Community,

ich habe tausende PDF-Dateien, alle unterschiedlich lang und in verschiedenen Ordnern...

Bsp:
4120135748353543435413.pdf
435875851535135.pdf
4863486443843846843.pdf

Diese Dateien will ich nach X Zeichen abschneiden, sprich das Ergebnis soll sein:


4120135748353.pdf
4358758515351.pdf
4863486443843.pdf

(der jeweilige Ordner soll gleich bleiben)


Leider komme ich nicht wirklich voran, die Beiträge hier auf der Seite haben mir auch nicht weitergeholfen

Aber ich weiß dass es hier wahrhaftige Batch-Profis gibt.

Kann mir jemand einen Denkanstoß bzw. eine Lösungsmöglichkeit anbieten?

Vielen lieben Dank vorab!

die uebeltat


@edit: Ich wollte nicht unhöflich wirken, Entschuldigung (:
Mitglied: Biber
29.02.2012 um 21:28 Uhr
[OT]
Zitat von uebeltat:
Ich habe tausende PDF-Dateien, alle unterschiedlich lang und in verschiedenen Ordnern...
Sind die denn wenigstens gleich breit? Denn "Batch" heisst eigentlich "Stapel" und eine gleiche Breite würde das Stapeln erleichtern.
Leider komme ich nicht wirklich voran, die Beiträge hier auf der Seite haben mir auch nicht weitergeholfen
....Hmm - was hast du denn mit den Beiträgen gemacht? Lesen war es wohl kaum.

Aber ich weiß dass es hier wahrhaftige Batch-Profis gibt.
Aber auch echte Batch-Prolls.... wenn die dich beim Posten ohne Hallo und im Bereich "Tools & Utilities" erwischen, dann duzen die dich.

Ich verschieb den Beitrag mal ins richtige Forum - wahrscheinlich sind dir schon ein paar Oneliner geliefert worden, bevor ich damit fertig bin.

Dennoch - ich kann mir nicht vorstellen, dass dazu kein Musterlösungs-Beispiel in unserem Forum zu finden gewesen wäre.

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: uebeltat
29.02.2012 um 21:31 Uhr
Hallo Biber,

danke dass du meinen Beitrag in die richtige Richtung bringst. Gelesen habe ich, zum Ziel hat mich jedoch kein Beitrag geführt. Was ich hier gefunden habe ist nicht das, was ich suche. Daher wende ich mich vertrauensvoll an das Forum.

Zu deiner Frage: Ja, alle vorhandenen Dateien sollen nach der gleichen Anzahl an Zeichen abgeschnitten werden.
Bitte warten ..
Mitglied: bastla
29.02.2012 um 21:56 Uhr
Hallo uebeltat und Biber!

Der heutige "bastla to go" :
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Ordner=D:\Ordner unter dem 1000e PDF-Dateien liegen" 
03.
set "Typ=pdf" 
04.
set /a Stellen=13 
05.
 
06.
for /f "delims=" %%i in ('dir /s/b/a-d "%Ordner%\*.%Typ%"') do ( 
07.
    set "Name=%%~ni" 
08.
    echo ren "%%i" "!Name:~,%Stellen%!%%~xi" 
09.
)
Annahme: Es sollen alle zu findenden PDF-Dateien verarbeitet werden und es gibt keine, in deren Name ein "!" vorkommt.

Solange das "echo" vor dem "ren" steht, wird (zum Testen) das Umbenennen nur als Befehl angezeigt, aber noch nicht durchgeführt ...

Grüße
bastla

[Edit] @Biber: Sag doch was ... [/Edit]
Bitte warten ..
Mitglied: Biber
29.02.2012 um 21:57 Uhr
Moin uebeltat,

na schön - die Kurzfassung eines möglichen Lösungsweges ist in folgender Demo am CMD-Prompt erkennbar:
 
d:\temp>for %i in (i:*.pdf) do @(set "fname=%~ni" & @echo ren "%~fi" "!fname:~,7!.*") 
ren "i:\Dokus\Busobj.forumtopics\Prompt_ALL.pdf" "Prompt_.*" 
ren "i:\Dokus\Busobj.forumtopics\DateLOVs.pdf" "DateLOV.*" 
ren "i:\Dokus\Busobj.forumtopics\Excel_Universe.pdf" "Excel_U.*" 
ren "i:\Dokus\Busobj.forumtopics\Rolling_12.pdf" "Rolling.*" 
ren "i:\Dokus\Busobj.forumtopics\Dynamic_Universe.pdf" "Dynamic.*" 
ren "i:\Dokus\Busobj.forumtopics\Cascading_Prompts.pdf" "Cascadi.*"
  • Der Oneliner wurde von mir am CMD-Prompt im Verzeichnis d:\temp eingetippselt - also nur die erste Zeile nach dem "d:\temp>"
  • durchgenudelt werden alle "(i:\*.pdf")-Dateien in dem auf i: zufällig aktiven Verzeichnis
  • jeden Namen (ohne Endung) ermittele ich als %~ni" und speichere ihn in eine Variable %fname%
  • von %fname% erhalte ich die ersten 8 Zeichen als %fname:~7% oder, wenn es innerhalb derselben CMD-Zeile sein soll, als !fname:~7! (wenn EnableDelayedExpansion aktiviert ist- bei mir defaultmäßig)
  • damit kann ich ein REName zusammenstoppeln.

Wenn es denn für Unterverzeichnisse sein soll: dann noch eine FOR/D-oder FOR/R Anweisung vorschalten.

Details findest du für die %Variablen% und "SubString"-Mimik in der Hilfe SET/?
Für FOR, FOR/F und FOR /D natürlich unter FOR/? -oder- hier im Forum in Friemlers Tutorial zur FOR-Anweisung (in "Batch & Shell")

Bitte versuche mal - für einen überschaubaren Zeitraum, z.B. 2 Stunden- dich deinem konkreten Problem etwas anzunähern und einen Ansatz, einen ehrenvollen Versuch hier zu posten.
Denn wenn du es einmal verstanden hast, dann wirst du es auch auf andere Problemchen transferieren können.

Wenn du gar nicht klarkommst -> wir sind hier.

Grüße
Biber
Bitte warten ..
Mitglied: Biber
29.02.2012 um 22:03 Uhr
Moin bastla,

Zitat von bastla:
Hallo uebeltat und Biber!

Der heutige "bastla to go" :
*grummel*... ich wollte es ja nicht heraufbeschwören, aber ich habe fast mit dir gerechnet...

Annahme: Es sollen alle zu findenden PDF-Dateien verarbeitet werden und es gibt keine, in deren Name ein "!" vorkommt.
Zusatzannahme: es ist nicht ausgerechnet das 14te Zeichen ein Leerzeichen.
Denn dann werden Dateien der Form "01234567890123[Leerzeichen}.pdf angelegt.
Das funktioniert schmerzfrei - aber einige Programme (auch PDF-verarbeitende!) gehen bei dem Namen auf die Bretter.

Grüße
bastla
Grüße zurück
Biber
Bitte warten ..
Mitglied: Skyemugen
01.03.2012 um 09:03 Uhr
Aloha bastla,

da ich gerade beim Bäcker war, wie sieht's aus mit eventuell im Nachhinein enstehenden Doppelten?

Wobei die Frage eher an den TE gehen müsste. aber was meinte er mit
Kann mir jemand einen Denkanstoß bzw. eine Lösungsmöglichkeit anbieten
?

Entweder will ich den Motor oder das ganze Auto ...

greetz André
Bitte warten ..
Mitglied: bastla
01.03.2012 um 10:57 Uhr
Hallo Skye!
wie sieht's aus mit eventuell im Nachhinein enstehenden Doppelten?
Ich hoffe doch, dass sich der TE diese Frage bereits im Vorhinein gestellt und beantwortet hat ...

Grüße
bastla
Bitte warten ..
Mitglied: uebeltat
05.03.2012 um 19:21 Uhr
Ich seid die Besten, vielen Dank!

Kurz noch die Antwort auf die Fragen: Das 14. Zeichen ist kein Leerzeichen und Doubletten gibt es auch nicht, da die ersten 13 Stellen immer unterschiedlich sind...

Vielen vielen Dank
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
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 ...

Batch & Shell
gelöst Batch for f Befehl erkennt doppelte Zeichen als eines (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst In Batch variable DOS-Funktion von "größer" und "kleiner" Zeichen unterdrücken (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...