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

Datum verdeutschen mittels Batch

Frage Entwicklung Batch & Shell

Mitglied: ruebensau

ruebensau (Level 1) - Jetzt verbinden

21.08.2008, aktualisiert 24.09.2008, 2626 Aufrufe, 2 Kommentare

Hallo Community,

habe folgende txt Datei:

A10020;05.25.2004;ARA;1;04NK13730;51147;975639001;C:\test\uldaten\A10020\2004-05-25\A10020-1-975639001-20040525-ARA-51147.rtf
A10020;;QF;1;;;;C:\test\uldaten\A10020\A10020-1-QF.rtf
A10079;;CAPM;1;;;951013001;C:\test\uldaten\A10079\A10079-1-951013001-CAPM.tif
A10079;08.13.2003;A;1;03NK20941;90120;951013001;C:\test\uldaten\A10079\2003-08-13\A10079-1-951013001-20030813-A-90120.tif

Um diese txt zu erzeugen hatte ich dies Batch benutzt:

01.
setlocal enabledelayedexpansion 
02.
 
03.
for /f "skip=1 eol= delims=" %%i in (uldokumente.csv) do (   
04.
set "in=;%%i;"   
05.
set "in=!in:;;=;NULL;!"   
06.
for /f "delims=; tokens=1-8" %%a in ("!in:;;=;NULL;!") do (  
07.
if not "%%a"=="NULL" set "k=%%a"  
08.
echo !k!;%%b;%%c;%%d;%%e;%%f;%%g;%%h >> d.log 
09.
)) 
10.
 
11.
for /f "tokens=1-8 delims=;" %%a in (d.log) do ( 
12.
	call :searchexist %%a %%b %%c %%d %%e %%f %%g %%h 
13.
14.
 
15.
for /f "tokens=1-8 delims=;" %%a in (d.log) do ( 
16.
	call :searchnotexist %%a %%b %%c %%d %%e %%f %%g %%h 
17.
18.
 
19.
goto L_END 
20.
 
21.
:searchexist 
22.
for /R C:\test\uldaten\%1 %%a in (%2.*) do ( 
23.
	echo %1;%2;%3;%4;%5;%6;%7;%8;%%~fa >> found.log 
24.
25.
goto :EOF 
26.
 
27.
:searchnotexist 
28.
set suchdatei=C:\test\uldaten\%1\%2.* 
29.
dir %suchdatei% /s 
30.
if %errorlevel% gtr 0 echo %1;%2;%3;%4;%5;%6;%7;%8 >> notfound.log 
31.
goto :EOF 
32.
 
33.
:L_END 
34.
for /F "tokens=1-9 delims=;" %%a in (found.log) do ( 
35.
	echo %%a;%%c;%%d;%%e;%%f;%%g;%%h;%%i >> import.log 
36.
37.
 
38.
for /f "delims=" %%i in (import.log) do ( 
39.
	set "Line=%%i" & set Line=!Line:NULL=! & echo !Line!>> importzero.log 
40.
41.
 
>

Da wo ein Datum vorhanden ist(2. Token) möchte ich es in das deutsche Datumsformat umwandeln.
Wenn im 2.Token kein Datum ist, dann soll auch nichts passieren.

Der Output soll danach wie oben in der txt beibehalten werden.

Weiß nicht wo und wie ich ansetzen soll.

Bin für jede Hilfe dankbar.

MfG
Rübe
Mitglied: bastla
21.08.2008 um 13:36 Uhr
Hallo rübensau!

Ich weiß zwar nicht so genau, was Du mit "deutschem" Datumsformat meinst, aber um etwa die Darstellung mit "JJJJ-MM-TT" zu erhalten, sollte es genügen, die Zeile 8 zu ersetzen durch:
01.
set d= 
02.
for /f "tokens=1-3 delims=." %%x in ("%%b") do set "d=%%z-%%y-%%x" 
03.
echo !k!;!d!;%%c;%%d;%%e;%%f;%%g;%%h >> d.log
Grüße
bastla
Bitte warten ..
Mitglied: ruebensau
24.09.2008 um 10:22 Uhr
danke, hat wunderbar geklappt. Ist eben schon ziemlich lange her, dass ich überhaupt was mit batchen gemacht habe und dann auch nur die einfachsten Sachen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Windows 10 Batch für Datum und Uhrzeit setzen (18)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch soll an einem bestimmten Datum eine Website öffnen (3)

Frage von Yanmai zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch für File extension überprüfung und listenerstellungmit Zeit und Datum (2)

Frage von watch123 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...