Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Simpel: Dos, mit einer Variablen rechnen





Frage

Guten Morgen allerseits! Zuerst die wesentlichen Systemdaten: cmd unter XP, also kein 'echtes' Dos... Hardware und sonstige Software stellt keine Probleme dar, kann ich aber ohne Probleme posten, wenn Bedarf bestehen sollte oder sich entwickelt. Es geht um Folgendes: Ein einfaches Backup-Programm, es soll standardmäßig Daten bestimmter Verzeichnisse in den Ordner <Backup-Datum-von-heute> kopieren, der dann mit Winzip komprimiert wird. Am Ende dieser kleinen Aufgabenkette soll sich der Rechner, da das Ganze als Ende eines Arbeitstages gedacht ist, ausschalten. Alles kein Problem. Interessant wird die Frage, wenn zuvor noch der Ordner (die Zip-Datei) <heute-7-Tage> gelöscht werden. soll. Mein Ansatz dazu führt zu einer Fehlermeldung, dass eine ungültige Zahl verwendet würde, hoffe, ihr könnt mir helfen: -----------QC----------- @for /f "Tokens=1,2,3,4 delims=/. " %%a in ('date/t') do set Day=%%a set /A Dayd="%Day%-7" -----------QC----------- Die daraus entstandene Variable Dayd ließe sich ja wieder ohne Probleme in den Datum-Strang einseten, und die Welt wäre in Ordnung. Ich hoffe, ihr könnt mir helfen?? Benni

Antwort 1 von manei

Hallo,

das Datum ist keine Zahl in mathematischem Sinn.

Ich glaube auch nicht, daß WinNT/W2K/XP auf Commandebene automatisch das Addieren bzw. Subtrahieren beim Datum beherrscht. Dies macht man am einfachsten mit einem .vbs-Script über eine Batch.

Mit
daterec.bat kannst Du dieses Problem lösen.

@echo off
cls
rem %%1 = output (Variable)
rem %%2 = input (Datum)
rem %%3 = Angabe +/-Tage (z.B. -7)
Set _T=%temp%\~tmp
echo S="%2">%_T%.vbs
echo S=DateAdd("d", %3, (S))>>%_T%.vbs
echo Wscript.Echo "set out="+CStr(S)>>%_T%.vbs
cscript.exe //nologo %_T%.vbs > %_T%.bat
for %%e in (%_T%.bat del) do call %%e %_T%.???
set %1=%out%
for %%e in (_T out) do set %%e=
cls

MfG maneich

Antwort 2 von Der_Benni

Hallo maneich!


Erst einmal ein riesiges 'Danke!' für deine mehr als schnelle Hilfe! Echt super!

Was das Subtrahiern angeht, stimme ich dir zu, offensichtlich streikt Dos - oder was davon übrig ist, bei dieser Aufgabe.

Das wirkliche 'Danke!!!!' kommt aber jetzt, du hast mir wirklich mehr als weitergeholfen. Es funktioniert wie es soll, schlicht genau das, was ich brauche. Danke für deinen etwas 'größeren' Denkanstoß - wobei du die Programmierung nicht zwangsweise für mich hättest machen müssten. Aber trozdem oder gerade erneut: 'Vielen Dank!'

Benni

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: