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-Key: 185734

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

Printed on: April 24, 2024 at 15:04 o'clock

Member: Ravers
Ravers May 31, 2012 updated at 13:38:13 (UTC)
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
Member: Azubi123
Azubi123 May 31, 2012 at 13:55:45 (UTC)
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 ?
Member: mak-xxl
mak-xxl May 31, 2012 updated at 14:13:11 (UTC)
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
Member: Connor1980
Connor1980 May 31, 2012 updated at 14:11:54 (UTC)
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
Member: Ravers
Ravers May 31, 2012 at 14:22:13 (UTC)
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
Member: Skyemugen
Skyemugen May 31, 2012 updated at 14:31:55 (UTC)
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 ...
Member: Connor1980
Connor1980 May 31, 2012 at 14:54:25 (UTC)
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
Member: Ravers
Ravers May 31, 2012 at 15:03:52 (UTC)
Goto Top
Danke Conner face-wink
Auch wenn man darauf selber kommen kann ;) ... btw. über welches BS reden wir hier eigentlich?!

greetz
ravers
Member: bastla
bastla May 31, 2012 updated at 19:31:40 (UTC)
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
Member: mak-xxl
mak-xxl May 31, 2012 at 19:48:14 (UTC)
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
Member: bastla
bastla May 31, 2012 at 19:56:22 (UTC)
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
Member: Azubi123
Azubi123 Jun 01, 2012 at 04:59:03 (UTC)
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 ?
Member: mak-xxl
mak-xxl Jun 01, 2012 updated at 06:02:03 (UTC)
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
Member: bastla
bastla Jun 01, 2012 updated at 06:04:34 (UTC)
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
Member: Connor1980
Connor1980 Jun 01, 2012 at 07:26:13 (UTC)
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