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, 2616 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 ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

(1)

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Datum per batch ändern in Tagen (2)

Frage von crawnby 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 ...

Batch & Shell
gelöst (Batch) Datum Sortier-Mechanismus (19)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
Tipps für Router (ca. 100 clients, VPN) (18)

Frage von oel-auge zum Thema Router & Routing ...

LAN, WAN, Wireless
Switchempfehlung Infrastrukturprojekt KMU (11)

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