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

Batchdatei - Bei copy Befehl im Dateinamen das Datum aus Vortag anhängen

Frage Entwicklung Batch & Shell

Mitglied: aiwa002

aiwa002 (Level 1) - Jetzt verbinden

18.11.2008, aktualisiert 17:33 Uhr, 10713 Aufrufe, 6 Kommentare

Wir müssen über den copy Befehl eine Datei mit dem Vortag benennen.
Die Datumsangabe muss im folgenden Format bereitsgestellt sein: Dateiname_20081117.csv

Folgendes habe ich bereits gefunden und funktioniert auch soweit:

@echo off
@del %temp%\gestern.vbs
@echo wscript.echo dateAdd("d",-1, date())>%temp%\gestern.vbs
@For /F %%i in ('cscript //nologo %temp%\gestern.vbs') do @set "yesterdate=%%i"

Problem ist aber das in der Variablen %yesterdate% das folgende Format angezeigt wird: 17/11/2008

Damit ich dies jetzt verwenden kann müsste ich die Variable auslesen können.

Leider weiß ich nicht wie ich das machen soll, daher hoffe ich dass mir hier jemand weiterhelfen kann!

Gruß
Steffen
Mitglied: aiwa002
18.11.2008 um 16:26 Uhr
set jahr=%date:~-4%
set monat=%date:~-10,2%
set tag=1000%date:~-7,2%
set /a vormonat=%monat%-1

if not %tag%==100001 set /a tag=%tag%-1 & goto punktzwei

for %%j in (77700 77701 77703 77705 77707 77708 77710) do if %vormonat%==%%j set /a tag=100031 & goto punkteins
for %%k in (77704 77706 77709 77711) do if %vormonat%==%%k set /a tag=100030 & goto punkteins

set /a tag=100028
for %%l in (2008 2012 2016 2020 2024) do IF %jahr%==%%l set /a tag=100029

:punkteins
if not %monat%==77701 set /a monat=%monat%-1 & goto punktzwei
set /a monat=77712
set /a jahr=%jahr%-1

:punktzwei
set tag=%tag:~-2,2%
set monat=%monat:~-3,2%

echo %tag%
echo %monat%
echo %jahr%
echo %date%
Bitte warten ..
Mitglied: Biber
18.11.2008 um 16:39 Uhr
Moin alwa002,

das einfachste wäre sicherlich, das Systemdatumsformat auf das "deutsche" Datumsformat zu setzen.
Geht das oder ist das ein (englischsprachiger) Server, auf dem Du keine Rechte hast bzw. keine Seiteneffekte auslösen möchtest?

Zweite Alternative, die allerdings den Umfang des temporären VBS-Schnipsels ins schier Unermessliche wachsen lassen würde, wäre
01.
... 
02.
echo d=dateAdd("d",-1, date())>%temp%\gestern.vbs 
03.
echo wscript.echo datepart("d",d) ^& datepart("m",d) ^&datepart("yyyy",d)>>%temp%\gestern.vbs 
04.
echo wscript.echo datepart("d",d) ^&"."^& datepart("m",d) ^&"."^&datepart("yyyy",d)>>%temp%\gestern.vbs 
05.
...(Aufruf des Schnipsels.
D.h. Du würdest das Datum aus Tag+"."+Monat + "." +Jahr selber zusammenbraten.
Ausgabe wäre dann
17.11.2008
..und möglicherweise müsstest Du noch für Tage/Monate < 10 eine führende "0" ergänzen.

aber Variante 1 (Systemdatumsformat auf "deutsch" setzen) wäre sinnvoller.

Grüße
Biber
Bitte warten ..
Mitglied: aiwa002
18.11.2008 um 16:43 Uhr
Ich hab ja jetzt zum Glück das bereits oben angegebene Script gefunden, wo auch das Problem mit den Nullen bereits gelöst ist!

Aber da bin ich nicht wirklich drauf gekommen das mein Problem am englischen Datum liegt.

Dank dir!

Gruß
Steffen
Bitte warten ..
Mitglied: Biber
18.11.2008 um 17:06 Uhr
Moin aiwa002,

obwohl.... ein bisschen blöd hab ich mich ja eben auch angestellt.
Es ist ja auch im Bätch kein Problem, die "/" in der Variablen auf "." zuändern oder auch gleich das Datum in der Form "20081117" zu formatieren.
Hilfreich wäre ja nur zu wissen, in welcher Reihenfolge der Datumswert zurückkommt (in Reihenfolge tt.mm.jjjj oder mm.tt.jjjj oder jj.mm.tt)

Wenn Du aber Punkte und/oder Schrägstriche gleichermaßen durch "nichts" ersetzen willst:
01.
set mydate=17/11/2008 
02.
echo %mydate:/=% 
03.
17112008
Grüße
Biber
Bitte warten ..
Mitglied: aiwa002
18.11.2008 um 17:08 Uhr
Hallo Biber,

das Datumsformat wäre 20081117
(JahrMonatTag)

Gruß
Steffen
Bitte warten ..
Mitglied: Biber
18.11.2008 um 17:33 Uhr
Moin aiwa002,

okay, das wäre dann so eine Mimik:
01.
::testschnpsel.bat 
02.
@echo off & setlocal 
03.
REM so kommt ja Datum zurück ...oder meinetwegen auch so: 17.11.2008 
04.
set "mydate=17/11/2008" 
05.
for /f "delims=./ tokens=1-3" %%i in ("%mydate%") do set "myANSIdate=%%k%%j%%i" 
06.
REM myANSIdate hat jetzt das Format YYYYMMDD = 20081117 
07.
echo myANSIdate: [%myANSIdate%]
Breitgetreten wird das Ganze übrigens im Tutorial "Workshop Batch for Runaways III" unten unter Anleitungen.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...