Jump to content

Kein Datum für das Wochenenende erstellen


Recommended Posts

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

Link to post
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:

 

  • Like 1
Link to post

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 *

 

  • Thanks 1
Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...