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, 7527 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
Batch & Shell

Batch: Dateiname abhängig vom Änderungsdatum auslesen

gelöst Frage von freaktastischBatch & Shell6 Kommentare

Servus zusammen, hab folgende Situation Oberordner: beinhaltet test.bat, Ordner1 und Ordner2 Ordner1, sowie Ordner2 beinhalten .docx Dateien. Mein Anliegen ...

Batch & Shell

Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren

gelöst Frage von getmovingBatch & Shell3 Kommentare

Hallo, ich brauche eine einfache Batch-Datei für Windows, die alle Dateien in einem Ordner bearbeitet. Es sollen alle jpg-Dateien, ...

Batch & Shell

Batch Ordner erstellen und verschieben

gelöst Frage von FromeonlyBatch & Shell6 Kommentare

Hallo Leute, ich habe ein kleines Problem beim erstellen einer Batch. Ziel der Batch soll es sein, dass sie ...

Batch & Shell

Für Dateiname einen Ordner erstellen und dann entsprechnede Datein da rein schieben

Frage von Focus1610Batch & Shell1 Kommentar

Hallo, ich habe ein Problem mit Win Powershell. Habe einen Win7 Rechner der als Server und NAS fungiert. Weiterhin ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 13 StundenMicrosoft

Server Betriebssysteme auf dem die verschiedenen Offices nicht supported sind: • Office 365 ist und wird nicht supported auf Windows ...

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 14 StundenSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 15 StundenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 1 TagHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows 10
Sysprep Fehler im Log kann nicht starten
Frage von grillinator95Windows 1022 Kommentare

Hallo, kann leider SYSPREP nicht mehr starten, Win10 64bit. Logfile sagt folgendes: 2018-10-17 13:44:56, Info SYSPRP 2018-10-17 13:44:56, Info ...

Sicherheitsgrundlagen
EuGH-Urteil - Internetanschluss für die ganze Familie - Filesharer haften trotzdem
Frage von StefanKittelSicherheitsgrundlagen19 Kommentare

Hallo, In diesem Artikel geht es darum, dass Jemand aus der Familie ein Hörbuch illegal hochgeladen hat. Der Vater ...

Apple
MacBook Pro 2018 mit 8 GB oder 16 GB
Frage von SysAdm81Apple14 Kommentare

Hallo zusammen, ich steh vor der Überlegung mir ein MacBook Pro 13 (2018) zu kaufen. Bzgl. SSD habe ich ...

Outlook & Mail
Outlook schiebt Mails aus Posteingang sofort in den Papierkorb
Frage von hermesOutlook & Mail13 Kommentare

Hallo Outlook Fachleute, wir haben hier das Problem, dass Outlook 2010 alle ankommenden Mails seit zwei Tagen einfach in ...