Zugriff auf Date-Variable Windows NT 4.0
Hab ein wunderschönes Programm geschrieben, dass mit der Funktion "date" das aktuelle Datum ausliest und weiterverwendet!!
Das funzt leider nicht im Windows NT 4.0 wo ich das Programm einsetzen will!!
Wie kann man dort auf die Variable zugreifen???
Das funzt leider nicht im Windows NT 4.0 wo ich das Programm einsetzen will!!
Wie kann man dort auf die Variable zugreifen???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 26014
Url: https://administrator.de/contentid/26014
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
10 Kommentare
Neuester Kommentar
Na, dann ist es doch machbar...
Dann schreibe mit folgender Zeile eine Temporäre Datei $$.tmp
HTH Biber
Dann schreibe mit folgender Zeile eine Temporäre Datei $$.tmp
::----Snipp GetADateWithNT.bat (ungetestete Skizze)
@echo off....
echo exit|cmd /q /k"prompt $D"|find "." >$$.tmp
::----> In dieser Datei steht jetzt "Mi Mi 15.02.2006" als eine Zeile drin.
::----> Diese eine Zeile Packst Du in eine Variable "MyDate" mit der Anweisung:
set /p mydate=<$$.tmp
:: ----> Tempdatei löschen
del $$.tmp >nul
--->> Wochentag entfernen, falls vorhanden, Vortest am CMD-Prompt
:: for %i in (%mydate%) do @echo %i
:: --->die Zeile vorher wird aufgelöst zu
:: --- for %i in (Mi 15.02.2006) do @echo %i
:: --- Mi
:: --- 15.02.2006
:: Im Batch also:
for %i in (%mydate%) do Set Date=%i
:: in %DATE% steht jetzt: 15.02.2006
::----Snipp GetADateWithNT.bat (ungetestete Skizze)
Hmm, was kann der Command-Prompt schon bei NT4.0?
Ich habe kein NT mehr gesehen, seit Tamagotchis und TriTop-Getränke ihren Hype hatten...
Wenn der CMD-Prompt schon die Möglichkeiten von Win2k hat (ich weiß es wirklich nicht mehr), dann
- entweder über die Substring-Funktion bei Variablen, wie Du oben gepostet hast
- oder über eine FOR /F-Schleife mit "Delims=." (Trenner sind die Punkte).
FOR /F "tokens=* delims=." %%a in (%date%) do set JJJJMMTT=%%c%%b%%a
- oder über einen Aufruf eines VBS-Schnipsels, falls VB-Script da schon läuft.
- wenn NT nichts von alledem kann, wird es unappetitlich. (Aber natürlich trotzdem lösbar).
Ich habe kein NT mehr gesehen, seit Tamagotchis und TriTop-Getränke ihren Hype hatten...
Wenn der CMD-Prompt schon die Möglichkeiten von Win2k hat (ich weiß es wirklich nicht mehr), dann
- entweder über die Substring-Funktion bei Variablen, wie Du oben gepostet hast
- oder über eine FOR /F-Schleife mit "Delims=." (Trenner sind die Punkte).
FOR /F "tokens=* delims=." %%a in (%date%) do set JJJJMMTT=%%c%%b%%a
- oder über einen Aufruf eines VBS-Schnipsels, falls VB-Script da schon läuft.
- wenn NT nichts von alledem kann, wird es unappetitlich. (Aber natürlich trotzdem lösbar).
*ggg... darf ich das so interpretieren, dass Substring- und FOR /F-Variante entfallen?
Und VBSkript? Läuft das unter NT? Ein kleines VBSchnipselchen kann ja aufgerufen werden entweder zur Datumsermittlung/-zerlegung in Tag, Monat, Jahr oder auch zur Stringzerlegung.
Wenn das zu aufwändig ist: in gogoflashs neuestem Tutorial "Druckkontigente verwalten mit Bordmitteln" ist u.a. ein Link gepostet zu einer "VAR SET"-Freeware. Die kann sowas alles. Auch schon bei Win97 oder wie das damals hieß.
Und VBSkript? Läuft das unter NT? Ein kleines VBSchnipselchen kann ja aufgerufen werden entweder zur Datumsermittlung/-zerlegung in Tag, Monat, Jahr oder auch zur Stringzerlegung.
Wenn das zu aufwändig ist: in gogoflashs neuestem Tutorial "Druckkontigente verwalten mit Bordmitteln" ist u.a. ein Link gepostet zu einer "VAR SET"-Freeware. Die kann sowas alles. Auch schon bei Win97 oder wie das damals hieß.
Hallo,
WinNT enthält ja auch das Programm "choice.com", zumindest ist es im RecourseKid für WinNt enthalten.
Dann solltest Du mal ff. Batch testen:
liefert Dir das aktuelle Datum aufgeteilt in 3 Variablen tt / mm / jjjj bzw. tt / mm / jj
[name = dateX.bat]
snip
@echo off
cls
rem Aufruf in Batch oder Eingabeaufforderung mit:
rem liefert tt - mm - yyyy getrennt Normalzustand
rem z.B. call datex a b c Parameter für Ausgabe
rem liefert tt - mm - yy getrennt bei 4. Parameter 1
rem z.B. call datex a b c 1 Parameter für Ausgabe
for %%e in (loop loop2) do if %2'==%%e' goto %2
set q2=%1
set q3=%2
set q4=%3
set q5=%4
set ~t=%TEMP%.\Tmp
echo @prompt For %%%%%%%%D In ($D) Do Call %0 : loop %%%%%%%%D>%~t%1.bat
%COMSPEC% /C %~t%1.bat.>%~t%2.bat
call %~t%2.bat
call %~t%4 q1
Echo ; | Choice /S /C:;%q1%; %0 : loop2,>%~t%1.bat
%~t%1.bat
:loop
Echo @prompt Set %%%%1=_%3_ > %~t%3.bat
%COMSPEC% /C %~t%3.bat > %~t%4.bat
For %%C In (Call Goto:end) Do %%C %~t%4
:loop2
for %%e in (x x1 x2) do set %%e=
If %4'==_' Shift
for %%e in (set shift) do %%e x=%x%%4
for %%e in (set shift) do %%e x=%x%%4
shift
for %%e in (set shift) do %%e x1=%x1%%4
for %%e in (set shift) do %%e x1=%x1%%4
shift
if %q5%'==1' for %%e in (shift shift goto:y_low) do %%e
for %%e in (shift set) do %%e x2=%4
for %%e in (shift set) do %%e x2=%x2%%4
:y_low
for %%e in (shift set) Do %%e x2=%x2%%4
for %%e in (shift set) do %%e x2=%x2%%4
:end2
set %q2%=%x%
set %q3%=%x1%
set %q4%=%x2%
del %~t%*.bat>nul
for %%e in (q2 q3 q4 q1 x x1 x2 ~t) do set %%e=
:end
cls
snip
Sollte auch unter WinNt laufen.
MfG maneich
WinNT enthält ja auch das Programm "choice.com", zumindest ist es im RecourseKid für WinNt enthalten.
Dann solltest Du mal ff. Batch testen:
liefert Dir das aktuelle Datum aufgeteilt in 3 Variablen tt / mm / jjjj bzw. tt / mm / jj
[name = dateX.bat]
snip
@echo off
cls
rem Aufruf in Batch oder Eingabeaufforderung mit:
rem liefert tt - mm - yyyy getrennt Normalzustand
rem z.B. call datex a b c Parameter für Ausgabe
rem liefert tt - mm - yy getrennt bei 4. Parameter 1
rem z.B. call datex a b c 1 Parameter für Ausgabe
for %%e in (loop loop2) do if %2'==%%e' goto %2
set q2=%1
set q3=%2
set q4=%3
set q5=%4
set ~t=%TEMP%.\Tmp
echo @prompt For %%%%%%%%D In ($D) Do Call %0 : loop %%%%%%%%D>%~t%1.bat
%COMSPEC% /C %~t%1.bat.>%~t%2.bat
call %~t%2.bat
call %~t%4 q1
Echo ; | Choice /S /C:;%q1%; %0 : loop2,>%~t%1.bat
%~t%1.bat
:loop
Echo @prompt Set %%%%1=_%3_ > %~t%3.bat
%COMSPEC% /C %~t%3.bat > %~t%4.bat
For %%C In (Call Goto:end) Do %%C %~t%4
:loop2
for %%e in (x x1 x2) do set %%e=
If %4'==_' Shift
for %%e in (set shift) do %%e x=%x%%4
for %%e in (set shift) do %%e x=%x%%4
shift
for %%e in (set shift) do %%e x1=%x1%%4
for %%e in (set shift) do %%e x1=%x1%%4
shift
if %q5%'==1' for %%e in (shift shift goto:y_low) do %%e
for %%e in (shift set) do %%e x2=%4
for %%e in (shift set) do %%e x2=%x2%%4
:y_low
for %%e in (shift set) Do %%e x2=%x2%%4
for %%e in (shift set) do %%e x2=%x2%%4
:end2
set %q2%=%x%
set %q3%=%x1%
set %q4%=%x2%
del %~t%*.bat>nul
for %%e in (q2 q3 q4 q1 x x1 x2 ~t) do set %%e=
:end
cls
snip
Sollte auch unter WinNt laufen.
MfG maneich