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 Datei soll aus Datum eines Dateinamen ein Ordner-Archiv erstellen

Frage Entwicklung

Mitglied: KetschupMajo

KetschupMajo (Level 1) - Jetzt verbinden

24.02.2012, aktualisiert 10:07 Uhr, 3909 Aufrufe, 15 Kommentare

Hallo Forumwelt,
wie ich im Titel schon erwähnt habe, bin ich gerade wieder im .bat Fieber.
Da ich aber noch nie so tief im Batch-Datei-Schreiben drin war hoffe ich auf kleine Hilfe.

Meine Aufgabe ist aus einem Dateinamen einer PDF Datei ein Archiv aufzubauen.
Der Dateiname baut sich wie folgt auf: 0000_240212_0000_00000_0000.pdf
Die Nullen sind sich ändernde Elemente die Zahlen sind das Datum. (Also heutiges Datum der 24. Feburar 2012)

Am allerbesten wäre es jetzt wenn ich es hinbekommen würde wenn die Batch den Dateinamen zerlegen, und anhand es zweiten "Blocks" das Datum auslesen kann.
Anschließend soll eine Ordnerstruktur anlegt werden, bzw.sollte die Batch checken ob eine andere Datei vorher schon den Ordner angelegt hat. (if Befehl)

Das Archiv würde ich mir wie folgt vorstellen

Archiv
------Jahr
---------Monat
------------Tag

Wie gehe ich da am besten vor...?


Vielen Dank schonmal für die Hilfe...
Mitglied: Skyemugen
24.02.2012 um 10:44 Uhr
Aloha,

du möchtest es also alleine lösen?

In Ordnung, dann hier die Tipps:

Tutorial zur FOR-Schleife

du benötigst eine for /f mit _ als Trennzeichen, die den 2. Block als Variable setzt, dazu setzt du dann am Ende einfach mkdir Archiv\%Variable:~-2%\%Variable:~2,2%\%Variable:~0,2%

greetz André
Bitte warten ..
Mitglied: KetschupMajo
24.02.2012 um 11:51 Uhr
Danke - ich hab nicht genau gewusst wie ich an das ganzer erstmal rangehe... versuche mal was und poste dann mal wie weit ich komme... DANKE schonmal
Bitte warten ..
Mitglied: bastla
24.02.2012 um 13:02 Uhr
@skye
Einen Hinweis auf delayedEpansion könntest Du noch spendieren ...

Grüße
bastla
Bitte warten ..
Mitglied: KetschupMajo
26.02.2012 um 18:02 Uhr
For /R C:\.......\Eingang\*.pdf %i IN (*.pdf) DO mkdir C:\.......\Archiv\%i:~-2%\%i:~2,2%\%i:~0,2%

soweit komme ich schonmal... könntet Ihr mir noch nen kurzen Tipp geben...?
Jetzt setzt er glaub ich soweit ich das Verstanden habe den kompletten Dateinamen als Variable, oder? wie mache ich das jetzt dass er nur den zweiten Block nimmt... ?

Muss ich da jetzt noch Tokens einbauen? -> FOR /F "tokens=2 delims=_"
An welche Stelle und müssen Tokens ins "Klammern" oder in `diesen Dingern´ stehen?
Bitte warten ..
Mitglied: Skyemugen
26.02.2012 um 20:34 Uhr
Zitat von KetschupMajo:
Muss ich da jetzt noch Tokens einbauen? -> FOR /F "tokens=2 delims=_"
Die Frage ist jetzt (gerade nach meinem 1. Posting) nicht dein Ernst, oder?
An welche Stelle und müssen Tokens ins "Klammern" oder in `diesen Dingern´ stehen?
?

Entschuldige aber tust du mir den Gefallen und beschreibst dein Vorhaben mal genauer, denn von
Meine Aufgabe ist aus einem Dateinamen einer PDF Datei ein Archiv aufzubauen
nach
FOR /R

ist ein verdammt weiter weg ... den ich wenn dann sowieso gleich mit
01.
for /f "tokens=2 delims=_" %%s in ('dir /b /s "%Pfad%\*.pdf"') do ...
gehen würde

...

greetz André

P.S.: @bastla, hm abwarten
Bitte warten ..
Mitglied: bastla
26.02.2012 um 20:56 Uhr
@skye
for /f "tokens=2 delims=_" %%s in ('dir /b /s "%Pfad%\*.pdf"') do ...
Wenn Du gleich zerlegst, fehlt Dir aber der Gesamtpfad - und da ja vermutlich doch mehr gewünscht ist, als nur eine Ordnerstruktur zu erstellen, wird der vermutlich noch gebraucht ...
Stringzerlegung (des Datums) ohne Unterprogramm und ohne geeignete Delimiter könnte ohne "delayedExpansion" etwas schwierig werden ...

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
26.02.2012 um 21:19 Uhr
@bastla
könnte und vermutlich ...

und zum DEp bleibe ich bei meinem
abwarten
Ich wähle Tor 2 und tausche den grünen Umschlag.
Bitte warten ..
Mitglied: KetschupMajo
26.02.2012 um 23:57 Uhr
Zitat von Skyemugen:
> Zitat von KetschupMajo:
> ----
> Muss ich da jetzt noch Tokens einbauen? -> FOR /F "tokens=2 delims=_"
Die Frage ist jetzt (gerade nach meinem 1. Posting) nicht dein Ernst, oder?

;-( Du hast ja recht - hatte ich nicht richtig gelesen.... Hattest es ja eh schon erwähnt...

und ja.... es ist natürlich nicht nur eine Datei... nur soll anhand aller eingehenden .pdf Dateien ein Archiv aufgebaut werden. Anschließend soll das .pdf einmal ins Archiv verschoben und an eine andere Stelle kopiert werden.... das wäre dann ja wieder nicht mehr das Problem...
Bitte warten ..
Mitglied: Skyemugen
27.02.2012 um 07:23 Uhr
Aloha,

die Dateien liegen in einem Verzeichnis, ist das korrekt? Oder gibt es in Eingang auch Unterverzeichnisse? for /R oder nicht for /R, das ist hier die Option ;D

greetz André

Ok. cmd will mich heute verarschen, Unterprogramm funktioniert nicht, ich kapier's nicht, Wert bleibt beim 1. Mal leer und selbst if defined wird ausgeführt, wenn Wert leer ist und beim 2. Mal wird einfach der erste Wert genommen, UARGH!!!!

Gut, dann nehme ich eben bastlas DEp, auch wenn ich es nicht mag

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Pfad=E:\Test" 
03.
set "Archiv=E:\Archiv" 
04.
set "Kopie=E:\svn" 
05.
for %%s in ("%Pfad%\????_??????_????_?????_????.pdf") do ( 
06.
	for /f "tokens=2 delims=_" %%m in ("%%~ns") do ( 
07.
		set "Wert=%%m" 
08.
		mkdir "%Archiv%\!Wert:~-2!\!Wert:~2,2!\!Wert:~0,2!"2>nul 
09.
		copy "%%s" "%Kopie%">nul 
10.
		move "%%s" "%Archiv%\!Wert:~-2!\!Wert:~2,2!\!Wert:~0,2!" 
11.
12.
13.
pause 
14.
goto :eof
Ich bin heute mal so frei und gehe erst ein mal von einem Verzeichnis aus, wenn's nicht passt, der TE soll ja eigentlich nur angeregt werden

Hm, besser der TE setzt vor move noch ein echo, zum Anschauen (eventuell auch vor mkdir und copy, wenn er's mag.

Die Abfrage, ob ein Verzeichnis bereits existiert, erspare ich mir und unterdrücke einfach die Fehlermeldung, wenn dem so sein sollte ^__^
Bitte warten ..
Mitglied: KetschupMajo
27.02.2012 um 09:52 Uhr
Zitat von Skyemugen:
Aloha,

die Dateien liegen in einem Verzeichnis, ist das korrekt? Oder gibt es in Eingang auch Unterverzeichnisse? for /R oder
nicht for /R, das ist hier die Option ;D


Nein - Unterverzeichnisse sind keine vorhanden....

OK - jetzt hast Du mich leicht überfordert.... ich hab Dir mal kurz markiert was ich nicht verstehe - der Rest ist klar...

@echo off & setlocal enabledelayedexpansion
set "Pfad=E:\Test"
set "Archiv=E:\Archiv"
set "Kopie=E:\svn"
for %%s in ("%Pfad%\????_??????_????_?????_????.pdf") do (
for /f "tokens=2 delims=_" %%m in ("%%~ns") do (
set "Wert=%%m"
mkdir "%Archiv%\!Wert:~-2!\!Wert:~2,2!\!Wert:~0,2!"2>nul
copy "%%s" "%Kopie%">nul
move "%%s" "%Archiv%\!Wert:~-2!\!Wert:~2,2!\!Wert:~0,2!"
)
)
pause
goto :eof
Bitte warten ..
Mitglied: Skyemugen
27.02.2012 um 10:25 Uhr
Aloha,

2>nul

Fehlerkanal wird ins Nirvana umgeleitet (unterdrückt), da ich mir die if exist-Abfrage der Verzeichnisse erspare (denn wenn mehrere Dateien dasselbe Datum aufweisen, existiert das Verzeichnis bei der 2. Datei ja bereits), würde eine Fehlermeldung kommen, dass das Verzeichnis bereits existiert

beim Kopieren unterdrücke ich die normale Ausgabe (nicht die Fehlerausgabe), da das cmd-Fenster sonst voll mit 1 Datei(en) erfolgreich kopiert wäre ;D


greetz André
Bitte warten ..
Mitglied: bastla
27.02.2012 um 12:14 Uhr
@skye
Gut, dann nehme ich eben bastlas DEp, auch wenn ich es nicht mag
Ich sag jetzt nix ...

Grüße
bastla
Bitte warten ..
Mitglied: KetschupMajo
27.02.2012 um 12:26 Uhr
Klärt Ihr mich mal auf?
oder ist das ein Interna?
Bitte warten ..
Mitglied: bastla
27.02.2012 um 18:39 Uhr
Hallo KetchupMajo!

oder ist das ein Interna?
Ja - ein Internum dieses Threads (ich wollte nur einfach den "Zonk" nicht erwähnen - *ups, jetzt isses doch passiert*) ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
27.02.2012 um 19:13 Uhr
[genauso OT]
Moin KetschupMajo,

Zitat von KetschupMajo:
Klärt Ihr mich mal auf?
oder ist das ein Interna?
Ich sach' ma so....

Ich will ja nicht kategorisch ausschliessen, dass es hier auch versprengte Einzel-Interna gibt in unserem schönen Fora.
meine selige Tante Gertrude nahm ja auch immer nur ein Antibiotika .

P.S Und rein interessehalber: wenn ihr als Familie auftretet, kommt ihr dann als KetschupsMajo oder als KetschupMajos oder als KetschupsMajos??

Na ja, Hauptsache jeder bleibt ein Individua.

Grüße
Biber
[/genauso OT]
Bitte warten ..
Ähnliche Inhalte
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
Datei mit Datum im Namen erstellen
gelöst Frage von pbelclBatch & Shell6 Kommentare

Ich habe mir ein kleines Batch geschrieben, das mir eine Date erstellt, die im Namen das Datum und die ...

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
Batch Ordner mit Zeitstempel erstellen und Datei hinein kopieren
Frage von CHiLL3RBatch & Shell3 Kommentare

Hi, hab hier grad so meine Probleme. In der Batch soll ein Backup einer Datenbankdatei angelegt werden. Es handelt ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell16 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...

Hardware
Fujitsu Workstation mit K80 und Quadro P5000, Fehlermeldung: Connect Power Adapter
Frage von MachelloHardware7 Kommentare

Hallo Zusammen, ich benötige euren Rat da ich ratlos bin. Folgende Konfiguration im Büro: Fujitsu Workstation Celcius R940 Power ...