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 in einem bestimmten Format erstellen

Frage Entwicklung Batch & Shell

Mitglied: poljew

poljew (Level 1) - Jetzt verbinden

02.09.2011 um 15:48 Uhr, 2258 Aufrufe, 5 Kommentare

Brauche wieder Hilfe!

Hallo Experten!
ich habe ein Problem.
Bei uns auf dem Server werden die Daten jede Nacht in bestimmte Ordner verschoben, der Ordnername sieht z.B so aus: 2011-8-12.
Ich habe eine Batch erstellt die nach diesen Ordner sucht.

Also ich stelle mein Datum so zusammen:

set jahr=%date:~-4%
set monat=%date:~-6,1%
set tag=%date:~-10,2%

echo %jahr%-%monat%-%tag%

Wenn 2001-1-11 geht, dann funktioniert alles, wenn wir aber 2011-9-2 haben, sucht meine batch nach 2011-9-02 und findet natürlich nichts.

Gibt es dafür eine Lösung?

Vielen Dank in vorraus,

Gruß
Mitglied: 60730
02.09.2011 um 15:57 Uhr
Moin,

bau doch einfach in den Biber ein
01.
if %date:~-11,1% gtr 0 set tag=%date:~-9,1%
dazwischen. - Wenns sein muß - das gleiche mit dem Monat

Und vergess den Pistaziengrünen Haken nicht.


gruß
Bitte warten ..
Mitglied: Biber
02.09.2011 um 16:00 Uhr
Moin poljew,

willkommen im Forum.
Oder trenne es so:
[Demo am CMD-Prompt; eingeben nur die Testzeilen beginnend mit ">" ]
>for /f "delims=- tokens=1-3" %i in ("2011-12-17") do @Echo 2011-12-17 jahr:[%i] monat:[%j] tach: [%k] 
2011-12-17 jahr:[2011] monat:[12] tach: [17] 
 
(=15:58:10  D:\temp=) 
>for /f "delims=- tokens=1-3" %i in ("2011-1-9") do @Echo 2011-1-9 jahr:[%i] monat:[%j] tach: [%k] 
2011-1-9 jahr:[2011] monat:[1] tach: [9]
Grüße
Biber
Bitte warten ..
Mitglied: poljew
02.09.2011 um 16:19 Uhr
Hallo,

verstehe ich nicht, wie "bau doch einfach in den Biber ein"?

Danke
Bitte warten ..
Mitglied: rubberman
02.09.2011 um 18:41 Uhr
Hallo poljew,

relativ allgemeingültig (wenn man Zugriff auf die Registry hat) sind diese beiden Varianten:
01.
@echo off &setlocal 
02.
 
03.
:: iDate (Reihenfolge 0=mdy, 1=dmy, 2=ymd) und sDate (Trennzeichen) aus der Registry lesen (für beide Varianten) 
04.
for /f "tokens=1,2*" %%a in ('reg query "HKCU\Control Panel\International"^|findstr /i "\<[is]Date\>"') do set "%%a=%%c" 
05.
echo Reihenfolge: '%iDate%'    Trennzeichen: '%sDate%' 
06.
 
07.
:: Strings 
08.
for /f "tokens=1-3 delims=%sDate%" %%a in ("%date:* =%") do ( 
09.
  if %iDate%==0 (set mm=%%a&set dd=%%b&set yy=%%c) 
10.
  if %iDate%==1 (set dd=%%a&set mm=%%b&set yy=%%c) 
11.
  if %iDate%==2 (set yy=%%a&set mm=%%b&set dd=%%c) 
12.
13.
echo %yy% %mm% %dd% 
14.
 
15.
:: Zahlen 
16.
for /f "tokens=1-3 delims=%sDate%" %%a in ("%date:* =%") do ( 
17.
  if %iDate%==0 (set /a m=100%%a%%100,d=100%%b%%100,y=10000%%c%%10000) 
18.
  if %iDate%==1 (set /a d=100%%a%%100,m=100%%b%%100,y=10000%%c%%10000) 
19.
  if %iDate%==2 (set /a y=10000%%a%%10000,m=100%%b%%100,d=100%%c%%100) 
20.
21.
echo %y% %m% %d% 
22.
 
23.
pause
Grüße
rubberman
Bitte warten ..
Mitglied: poljew
05.09.2011 um 09:35 Uhr
Danke,

es hat geklappt.

Ihr seid die besten!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...