Phipz87 1 Geschrieben 30. Dezember 2020 Melden Teilen Geschrieben 30. Dezember 2020 Hallo, ich habe folgenden script: @echo off ::Letztes Datum im Ordner angeben (führende Null nicht vergessen bei Zahlen < 10) set tag=29 set monat=01 set jahr=2021 ::Datum bis wann Datei erstellt werden soll, am besten 1 Monat (Format angeben in jjjjmmdd) set ende_kopierenundumbenennen=2021-03-10 ::Datei zum kopieren set "Dateiendung=xlsx" set "Copy_File=%jahr%-%monat%-%tag%_PT_RELEASE INCL ANALYST CODE.%Dateiendung%" if NOT exist "%Copy_File%" (echo Datei existiert nicht&pause &exit) IF %tag%==10 goto :weiter IF %tag%==20 goto :weiter IF %tag%==30 goto :weiter set "tagX=%tag%" set tagx=%tagx:0=% set /A tag=%tagX% :weiter :loop set /a Schaltjahr=%jahr%%%4 if %jahr:~-2%==00 set /a Schaltjahr+=%Jahr:~,2%%%4 set korrektur=false IF %tag%==28 IF %Schaltjahr% neq 0 if %monat%==02 set monat=03& set tag=1& set korrektur=true IF %tag%==29 IF %monat%==02 set monat=03& set tag=1& set korrektur=true IF not %tag%==30 goto :notag30 IF %monat%==04 set monat=05& set tag=1& set korrektur=true IF %monat%==06 set monat=07& set tag=1& set korrektur=true IF %monat%==09 set monat=10& set tag=1& set korrektur=true IF %monat%==11 set monat=12& set tag=1& set korrektur=true :notag30 IF not %tag%==31 goto :notag31 IF %monat%==01 set monat=02& set tag=1& set korrektur=true IF %monat%==03 set monat=04& set tag=1& set korrektur=true IF %monat%==05 set monat=06& set tag=1& set korrektur=true IF %monat%==08 set monat=09& set tag=1& set korrektur=true IF %monat%==07 set monat=08& set tag=1& set korrektur=true IF %monat%==10 set monat=11& set tag=1& set korrektur=true IF %monat%==12 set monat=01& set tag=1& set /a jahr+=1& set korrektur=true :notag31 IF "%korrektur%"=="false" set /a tag+=1 set "tagX=0%tag%" set "tagX=%tagx:~-2%" echo Kopiere %Copy_File% nach %tagx%.%monat%.%jahr%.%Dateiendung% copy "%Copy_File%" "%jahr%-%monat%-%tagx%_PT_RELEASE INCL ANALYST CODE.%Dateiendung%">NUL IF "%jahr%-%monat%-%tagx%" NEQ "%ende_kopierenundumbenennen%" goto loop pause Nun möchte ich bitte, dass kein Wochenende erstellt wird. Was oder wo muss ich was einfügen? Vielen Dank Philipp Zitieren Link zu diesem Kommentar
cj_berlin 1.329 Geschrieben 30. Dezember 2020 Melden Teilen Geschrieben 30. Dezember 2020 Moin, auch wenn es keine direkte Antwort auf Deine Frage ist: Wir haben in ein paar Tagen 2021. Tu Dir selbst einen Gefallen und mach es in PowerShell. Da steht Dir die gesamte Macht der .NET DateTime-Klasse zur Verfügung. 3 Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 30. Dezember 2020 Melden Teilen Geschrieben 30. Dezember 2020 vor 6 Stunden schrieb cj_berlin: Wir haben in ein paar Tagen 2021. May the fourth be with you ? Aber stark ist die dunkle (Batch-) Seite, stark sie ist... ? 3 Zitieren Link zu diesem Kommentar
Phipz87 1 Geschrieben 31. Dezember 2020 Autor Melden Teilen Geschrieben 31. Dezember 2020 vor 17 Stunden schrieb cj_berlin: Moin, auch wenn es keine direkte Antwort auf Deine Frage ist: Wir haben in ein paar Tagen 2021. Tu Dir selbst einen Gefallen und mach es in PowerShell. Da steht Dir die gesamte Macht der .NET DateTime-Klasse zur Verfügung. Nein das hilft mir wirklich nicht weiter :) Mit Powershell kenne ich mich leider auch nicht so aus... Ich würde gerne einfach meinen Code nutzen, nur mit dem Zusatz kein Wochenende... Kann man das in Powershell denn einfach umsetzen? vor 17 Stunden schrieb cj_berlin: 1 Zitieren Link zu diesem Kommentar
cj_berlin 1.329 Geschrieben 31. Dezember 2020 Melden Teilen Geschrieben 31. Dezember 2020 Ja, kann man. Schau Dir folgende Schnipsel an: [datetime]::IsLeapYear('1972') [datetime]::IsLeapYear('2001') [datetime]::DaysInMonth(1972,2) [datetime]::DaysInMonth(2001,2) $today = Get-Date $today.DayOfWeek $today.DayOfWeek.value__ $tomorrow = $today.AddDays(1) $yesterday = $today.AddDays(-1) $newyear = Get-Date -Year ($today.Year + 1) -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0 Get-Date | fl * 1 Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 31. Dezember 2020 Melden Teilen Geschrieben 31. Dezember 2020 Vielleicht wäre es hilfreich, wenn Du mal das Ursprungsproblem beschreibst - also was genau soll eigentlich erreicht werden? Ansonsten gäbe es hier ein paar Anregungen, wie man in Batch an den Wochentag kommt: https://ss64.org/viewtopic.php?id=617 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.