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

Batch ID aus Dateiname auslesen und Ordner erstellen

Mitglied: Naik0n

Naik0n (Level 1) - Jetzt verbinden

06.02.2008, aktualisiert 28.02.2008, 7607 Aufrufe, 5 Kommentare

Hallo zusammen,

Ich habe gerade ein wenig in der Datenbank geforstet und konnte nicht wirklich etwas finden wonach ich eigendlich suche.

Folgendes Problem habe ich.

Es befinden sich lauter Files in einem Ordner:
D005546_1.pdf
D005546_2.pdf
D877888_1.pdf
D145658_1.pdf

P005546_1.jpg
P871786_1.jpg
P871786_2.jpg
P010505_1.jpg
P877888_1.jpg
P877888_2.jpg

alles nach dem "P" oder "D" bis zum "_" ist eine ID, Beispiel: 005546 oder 871786.

Es soll die ID ausgelesen werden und ein Ordner dazu auf C:\IDs\ erstellt werden, Beispiel: C:\IDs\005546
in den ordner sollen dann Alle files die diese ID enthalten. Also: D005546_1.pdf, D005546_2.pdf, P005546_1.jpg alle in den Ordner "005546"

Ich hoffe mir kann da jemand bei meinem Problemchen helfen, denn ich kenne mich mit Batch nicht all zu gut aus.

Vielen Dank im Voraus!

Sollte dies machbar sein hätte ich da noch ein etwas komplexeres Problem :D
Mitglied: bastla
06.02.2008 um 15:33 Uhr
Hallo Naik0n und willkommen im Forum!

Versuch es so (aber besser erst einmal mit Testdaten ):
01.
@echo off & setlocal
02.
set "Quelle=D:\Ordner"
03.
set "Ziel=C:\IDs"
04.
 
05.
for /f "delims=" %%i in ('dir /b /a-d "%Quelle%" 2^>nul') do call :ProcessFile "%%i"
06.
goto :eof
07.
 
08.
:ProcessFile
09.
for /f "delims=_" %%a in (%1) do set "ID=%%a"
10.
if not defined ID goto :eof
11.
set ID=%ID:~1%
12.
set "ZielOrdner=%Ziel%\%ID%"
13.
if not exist "%ZielOrdner%" md "%ZielOrdner%" || (echo %ZielOrdner% konnte nicht erstellt werden) & goto :eof
14.
move /-Y "%Quelle%\%~1" "%ZielOrdner%\"
Soferne es sich hier um eine einmalige Aktion handelt, sollte sich das Problem von Namenskollisionen (eine Datei gleichen Namens ist im Zielordner schon vorhanden) nicht stellen - trotzdem habe ich bei "move" zur Sicherheit den Schalter "/-Y" hinzugefügt, damit Du im Fall des Falles vor dem Überschreiben noch gefragt wirst.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.02.2008 um 16:52 Uhr
Moin bastla,

Vorschlag zur Vereinfachung:
01.
@echo off & setlocal
02.
set "Quelle=D:\Ordner"
03.
set "Ziel=C:\IDs"
04.
 
05.
for %%i in ("%Quelle%\D*_*.pdf" "%quelle%\P*_*.jpg") do call :ProcessFile "%%~nxi"
06.
goto :eof
07.
 
08.
:ProcessFile
09.
for /f "delims=PD_" %%a in (%1) do set "ID=%%a"
10.
set "ZielOrdner=%Ziel%\%ID%"
11.
if not exist "%ZielOrdner%" md "%ZielOrdner%" || (echo %ZielOrdner% konnte nicht erstellt werden) & goto :eof
12.
move /-Y "%Quelle%\%~1" "%ZielOrdner%\"
Grüße
Biber
Bitte warten ..
Mitglied: bastla
06.02.2008 um 17:05 Uhr
@Biber

Vereinfachung ja, allerdings auch Einschränkung hinsichtlich Anfangsbuchstaben und Dateitypen (dass auch ein Ordner mit dem verwendeten Suchmuster "D*_*.pdf" gefunden würde, ist aber eher unwahrscheinlich und daher kein ernstzunehmender Einwand ).

Grüße
bastla
Bitte warten ..
Mitglied: Naik0n
28.02.2008 um 12:28 Uhr
Hallo Zusammen,

Danke erstmal für die Vorschläge.
Ein Problem besteht weiterhin, er kopiert jeweils nur 1 File der ID in die ID ordner, der rest bleibt liegen, ausser ich führe den prozess nochmal aus, dann geht es.

Zudem kommt ein weiteres Problem hinzu, ich möchte während die Files verschoben werden die JPG Bilder in PDF umwandeln. ( Commandobefehl: convert "C:\file.jpg" "C:\file.pdf")

Alle Bilder mit der ID sollen am ende in einer PDF landen "ID.pdf"


danke
Bitte warten ..
Mitglied: Biber
28.02.2008 um 20:37 Uhr
...ich weiß gar nicht, wieso einige hier im Forum immer wieder seitenlange Lösungsskripte für wildfremde Hilfesuchende runtertippseln und viele dieser Hilfesuchenden, sollten sie sich nach Wochen überhaupt zurückmelden, dann melden "Habe es angepasst, läuft aber nicht" und wir diesen Fehler durch kontinuierliches Glaskugelreiben entfernen sollen....

.... gaaaanz laaaangsam bis 100 zähle.....

Okay, Freund Naik0n,
wenn der Schnipsel nicht aus dem geCALLten Block zurückkommt, dann fallen mir nur zwei mögliche Gründe dafür ein.
Der wahrscheinlichere davon ist, dass der Batch eben nicht mit der letzten Zeile dieses Blocks aufhört, sondern darunter noch weitere Zeilen folgen. Und die Rücksprunganweisung "goto :eof" fehlt.

Magst Du eventuell bitte Deinen hoch sensiblen Code posten, falls der nicht gerade im Original beim Nobelpreiskommitee in Stockholm unter Verschluss gehalten wird?

Danke
Biber

[Edit]
Okay, eben ist mir noch ein dritter Grund eingefallen, warum es nicht funktioneren könnte...
Ändere bitte die "IF NOT Exist"-Zeile so ab.
01.
if not exist "%ZielOrdner%" md "%ZielOrdner%" || ((echo %ZielOrdner% konnte nicht erstellt werden) & goto :eof)
[/Edit]
Bitte warten ..
Ähnliche Inhalte
Windows Server
Ereignis-ID
Frage von anak1mWindows Server2 Kommentare

Guten Morgen, kennt jemand auf die schnelle die Ereignis-ID mit welcher ich z.B. via PRTG eine Meldung erhalte wenn ...

Batch & Shell

Batch generieren mit einer ID oder Namen die Code enthält

gelöst Frage von TicoWriteBatch & Shell2 Kommentare

Hallo Liebe Kaffe freunde, Ich würde gerne eine Batch generieren mit einer ID oder Namen die Code enthält. Welcher ...

Windows Server

Event ID 78

Frage von rocco61Windows Server1 Kommentar

Guten Morgen zusammen, habe auf dem Server 2012 R2 eine sidebyside Fehlermeldung, event id 78. Bei eventid.net werde ich ...

Hyper-V

Hyper-V gleiche Datenträger-ID bzw. Volume-ID

gelöst Frage von Bernd16Hyper-V10 Kommentare

Hallo Hyper-V Spezies, ich baue gerade einen Hyper-V 2012R2 auf. VHD-Vorlage gebaut, mit Sysprep generalisiert und gespeichert. Euphorisch kopiert ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 1 TagHumor (lol)2 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 2 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 5 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 5 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
SSD zeigt falsche Werte
Frage von karl2014Festplatten, SSD, Raid25 Kommentare

Ich habe ein Problem mit der SSD in meinem Laptop mit Windows 10. Es ist eine 1Tb Platte die ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1021 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

Ubuntu
Installation freerdp 2.0.0-rc4
Frage von kristovUbuntu20 Kommentare

Hallo, möchte freerdp 2.0.0-rc4 auf linux mint 18.3 installieren, habe aber keine Ahnung, wie das funktioniert. freerdp 1.1 ist ...

Router & Routing
VPN u. WLAN Router für Reisen
Frage von stephan902Router & Routing17 Kommentare

Hallo, ich bin auf der Suche nach einem VPN/WLAN-Router für unterwegs. Und zwar möchte ich auf Reisen einfach den ...