azubi123
Goto Top

Batch die am Ende des Monats laufen soll.

Danke ann alle die mir ihre Hilfe anbieten oder es zu versuch.
ich versuche mich in der Zukunft auch bei euch zu revanchieren.

Ich Möchte eine Batch-Datei erstellen die am ende des Monats sich startet (ist jeden Tag in Autostart eingefügt),
d. h. sie soll erkennen wann der letze im monat ist und sich dann ausführt.
Diese Batch datei soll dann einen bestimmten ordner Packen und auf einen Pfad auf einem Netzlaufwerk Speichern
MFG
Azubi123
(Danke im Vorraus)

Content-ID: 185734

Url: https://administrator.de/contentid/185734

Ausgedruckt am: 25.11.2024 um 01:11 Uhr

Ravers
Ravers 31.05.2012 aktualisiert um 15:38:13 Uhr
Goto Top
Hi,

ich glaube "Geplante Tasks" ist genau das was du suchst. (Unter Start-Programme-Zubehör-Systemprogramme)

Das in einer Batch abzuhandeln ist recht schwer, impliziert auch, das du dich täglich anmeldest ... und natürlich must du definieren wann denn der letzte im Monat ist (ist es der 29/30 oder 31).
Hier würde
date /T
helfen, aber da du ein Neuling im Batch bist, würd ich das lassen face-wink


greetz
ravers
Azubi123
Azubi123 31.05.2012 um 15:55:45 Uhr
Goto Top
Hallo Ravers,
Ja Taks geplante Taks meine ich, die sagen wir mal um 09:00 Uhr laufen.
Also soll ich jeden Monat Definieren und den letzten Tag auch?
und mit einer Schleife die Tage Hochzählen (for schleife)?
oder kann ich dieses dann mit dem Befehl date abfragen ?
mak-xxl
mak-xxl 31.05.2012 aktualisiert um 16:13:11 Uhr
Goto Top
Moin Azubi123,

die Batch kann etwa so aussehen:
@echo off
set "vbsfile=%temp%\newdate.vbs"  
echo Wscript.Echo DatePart("D", (Date()+1))>>%vbsfile%  
for /f %%a in ('cscript //nologo %vbsfile%') do set "NewDay=%%a"  
del %vbsfile%
if [%NewDay%] neq [1] exit /b 1

:: Backup-Befehle

Per WSH wird festgestellt, ob der folgende Tag ein 1. des Monats ist, wenn nicht, wird das Script sofort beendet, wenn ja, werden alle Zeilen nach der sechsten Zeile ausgeführt. Die Datei kann also jeden Tag des Monats/Jahres per Cron gestartet werden.

Freundliche Grüße von der Insel - Mario
Connor1980
Connor1980 31.05.2012 aktualisiert um 16:11:54 Uhr
Goto Top
Hi,

warum umständlich in der Batch und nicht einfach per "Geplante Tasks" oder "Aufgabenplanung" den letzten Tag eines jeden Monats auswählen.

Grüße
Ravers
Ravers 31.05.2012 um 16:22:13 Uhr
Goto Top
Zitat von @Connor1980:
Hi,

warum umständlich in der Batch und nicht einfach per "Geplante Tasks" oder "Aufgabenplanung" den letzten
Tag eines jeden Monats auswählen.

Grüße

Genau das meinte ich Azubi123 !

Greetz
Skyemugen
Skyemugen 31.05.2012 aktualisiert um 16:31:55 Uhr
Goto Top
Zitat von @Ravers:
> Zitat von @Connor1980:
> ----
> Hi,
>
> warum umständlich in der Batch und nicht einfach per "Geplante Tasks" oder "Aufgabenplanung" den
letzten
> Tag eines jeden Monats auswählen.
>
> Grüße

Genau das meinte ich Azubi123 !

Greetz


Na dann sag doch mal wie, ich sehe keine Option für den letzten Tag des Monats, sofern nicht M$ so clever ist 31=30=28/29 zu setzen ...
Connor1980
Connor1980 31.05.2012 um 16:54:25 Uhr
Goto Top
bei Vista/7:
in der Aufgabenplanung bei Trigger->Einstellungen monatlich,
rechts daneben: Monate: alle, Tage: letzter

bei XP:
mehrfachen Zeitplan und jeweils den letzten Tag des jeweiligen Monats auswählen.

Grüße
Ravers
Ravers 31.05.2012 um 17:03:52 Uhr
Goto Top
Danke Conner face-wink
Auch wenn man darauf selber kommen kann ;) ... btw. über welches BS reden wir hier eigentlich?!

greetz
ravers
bastla
bastla 31.05.2012 aktualisiert um 21:31:40 Uhr
Goto Top
Hallo Mario!

Sehr hybsch face-smile - falls Du noch sparen wolltest, könntest Du zwei Paar Klammern weglassen oder gleich nur
WScript.Echo Day(Date+1)
schreiben ...

Grüße
bastla
mak-xxl
mak-xxl 31.05.2012 um 21:48:14 Uhr
Goto Top
Moin bastla,

ich wollte der Datei etwas Größe mit auf den kurzen Weg geben ... face-smile

Schönen Feierabend und Grüße von der Insel - Mario
bastla
bastla 31.05.2012 um 21:56:22 Uhr
Goto Top
Hallo Mario!

Ist ein Argument ... face-wink

Um übrigens tatsächlich den letzten Tag des aktuellen Monats zu finden:
WScript.Echo DateSerial(Year(Date),Month(Date)+1,0)
bzw dann Day() davon ...

Grüße
bastla
Azubi123
Azubi123 01.06.2012 um 06:59:03 Uhr
Goto Top
Also erstmal an alle Danke die Mich ein Stück weiter gebracht haben.
Das Betriebssystem wo es laufen soll ist ein Windows Server 2003 R2.
Wie sieht es dar aus kann ich das auch ohne batch festlegen ?
Mein Nächstes problem Wäre dann auch wie ich, die Batch datei dazu bekomme einen bestimmten ordner zu Packen und auf einen Pfad auf einem Netzlaufwerk Speichern soll.
Kann ich ja net use benutzen oder ?
mak-xxl
mak-xxl 01.06.2012 aktualisiert um 08:02:03 Uhr
Goto Top
Moin Azubi123,

die Batch bekommt dann beispielsweise folgenden Backupbefehl:

7z.exe a -r "\\Server\Freigabe\Backup\%date%.7z" "X:\Ordner\*.*"

Das Ganze mit Log-Datei:

7z.exe a -r "\\Server\Freigabe\Backup\%date%.7z" "X:\Ordner\*.*" > "\\Server\Freigabe\Backup\log-%date%.txt"

Es wird '7z' als Packer verwendet (jeder andere kommandozeilenfähige Packer geht auch), ein Zugriff auf die Serverfreigabe kann vorab geprüft werden, in dem das Vorhandensein einer dort liegenden Datei ermittelt wird, etwa so:

if /i not exist "\\Server\Freigabe\Backup\readme.txt" echo Kein Server - kein Backup & exit /b 1

Wenn das Backup auf dem Server laufen soll, vereinfacht sich alles auf lokale Pfade, die wohl erreichbar sein sollten ...

Natürlich muss es kein Batchjob sein, es gibt WSH, VB.Net oder Powershell oder ... - was immer Dir besser liegt.
Freundliche Grüße von der Insel - Mario
bastla
bastla 01.06.2012 aktualisiert um 08:04:34 Uhr
Goto Top
Hallo Azubi123!

Abgesehen davon, dass diese Frage nicht wirklich in diesen Thread passt, gibt es (auch hier im Forum) diverse Ansätze dazu (erst neulich wieder aktuell zB hier eine PowerShell- und eine VBS-Version) ...

Nur für diesen Zweck würdest Du jedenfalls kein "net use" benötigen - Stichwort: UNC-Pfad

Grüße
bastla
Connor1980
Connor1980 01.06.2012 um 09:26:13 Uhr
Goto Top
Hi
Zitat von @Azubi123:
Das Betriebssystem wo es laufen soll ist ein Windows Server 2003 R2.
schön
Wie sieht es dar aus kann ich das auch ohne batch festlegen ?
du liest die geschrieben Beiträge aber schon, oder?
Batch die am Ende des Monats laufen soll.
Zitat von @Connor1980:
bei XP:
mehrfachen Zeitplan und jeweils den letzten Tag des jeweiligen Monats auswählen.

Grüße