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, 2610 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.

Mit freundlichen Grüßen
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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ä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) Datum Sortier-Mechanismus (19)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...