113992
Goto Top

Win98 Batch - Datum ermitteln und die Variable splitten in tag,mon,jahr

Leider habe ich kein Win98, soll aber eine Prozedur schreiben, die in Variablen Tag, Monat, Jahr, Zeit (hh mm) enthält.
Die Var. %date% gibt es wie es scheint nicht.
Dies habe ich umschifft, indem ich dies in ein file geschrieben und dann ausgelesen habe.
in datum.txt steht die 1. Zeite des Kommandos date
Die Var ist gefüllt mit tt.mm.jjjj und dies muß aufgesplittet werden.
Hat jemand Win98 und kann dies testen oder so ändern, dass es geht? mit Datum hab ichs geschafft.
Mit Zeit geht es vermutlich analog. Dies habe ich aber noch nicht begonnen.
Wenn mir jemand hier helfen könnte, wär das schön.
Soweit bin ich mit schmöckern im Internet bereits gekommen:

echo off
echo. | date | find /i "aktuelles" > datum.txt  
type datum.txt 

type datum.txt | findstr /v "^#"  
rem der 3. Wert nach Trennzeichen Blank in Variable d
rem Trennzeichen .  wär schön, wird aber abgewiesen.

for /F "tokens=3,3 delims= " %%a in ('type datum.txt ^| findstr /v "^#"') do (    
        set d=%%a
)
@echo Variable d  xxx%d%xxx
echo.

rem ab hier beisst es aus: ich weiß nicht, ob Substring-Kommandos unter Win98 laufen.
rem unter Win7 geht es so.
set tag=%d:~0,2%
set mon=%d:~3,2%
set jar=%d:~6,4%
@echo Tag Mon Jahr xxxx%tag%xxx%mon%xxx%jar%xxx
del datum.txt
:eof
pause
hier die Ausgabe unter Win7
E:\>echo off
Aktuelles Datum: 06.11.2013
Aktuelles Datum: 06.11.2013

Variable d  xxx06.11.2013xxx

Tag Mon Jahr xxxx06xxx11xxx2013xxx
Drücken Sie eine beliebige Taste . . .
Das schließen der DOS-Box geht in Win98 offensichtlich ebenfalls nicht.

Content-Key: 221318

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

Printed on: April 19, 2024 at 20:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Nov 06, 2013 updated at 22:09:57 (UTC)
Goto Top
Ohne Win98 zum Testen wird das nichts. Da solltest Du die paar Kröten investieren.

Ich habe zwar noch Win98 in eine Krustelkiste herumliegen, aber aktuell keinen Rechner, (oder VM), auf dem das gerade verfügbar ist. Vielen anderen wird es genauso gehen, daß sie deswegen nicht anfangen wieder Win98 zu installieren. Da wird das einfachste sein, daß Du (oder Deine Brötchengeber) Dir eine Version kaufst/kauft.

lks
Member: Endoro
Endoro Nov 06, 2013 at 22:16:59 (UTC)
Goto Top
Hi,
unter win9x gibt es weder for /f noch set var=%var:a=b%.
Unter NT-Versionen kannst du das mit setlocal disableextensions testen.
lg
Member: pieh-ejdsch
pieh-ejdsch Nov 07, 2013 at 08:02:26 (UTC)
Goto Top
moin,
vielleicht gehts mit der Zerbröselten Ausgabe
cmd /u /c "date <nul |find "A"" |find /v "" >datei.txt  
Nach der Entsprechenden Zeile den Datumbestandteil mit for rauspicken und anschliessend zusammensetzen.

Gruß Phil
Member: colinardo
colinardo Nov 07, 2013 updated at 10:12:25 (UTC)
Goto Top
Hallo Tilimann,

Grüße aus dem Jenseits :

b176af94c3da70a746630fb5b1f333db

hab mal einiges probiert ... Fehlanzeige, Batch war damals doch noch sehr beschränkt ... hier mal ein Ausschnitt:

9e0a89a63e0b303e4af8d4da9ecb7887

auch eine Eingabeumleitung an Date bringt die Shell zum Absturz =8-)

@pieh-ejdsch
Für cmd war damals noch command das equivalent face-smile
Das schließen der DOS-Box geht in Win98 offensichtlich ebenfalls nicht.
mit exit gehts im Test, es muss in den Eigenschaften der DOS-Box das Häkchen "Beim Beenden schließen" gesetzt sein.

Wird also Zeit das Ihr die 98er Kiste in die ewigen Jagdgründe schickt !

Grüße Uwe

Alternative: verwende eine drittanbieter-exe die das Datum und die Zeit passend ausgibt.
Member: Lochkartenstanzer
Lochkartenstanzer Nov 07, 2013 updated at 10:46:51 (UTC)
Goto Top
Zitat von @colinardo:
Alternative: verwende eine drittanbieter-exe die das Datum und die Zeit passend ausgibt.

@to

Und vor allem: Installier Dir ein win98-Testsystem zum debuggen.

lks
Mitglied: 113992
113992 Nov 07, 2013 updated at 21:37:09 (UTC)
Goto Top
Hier bin ich wieder (Tiliman)
Danke für eure Bemühung.
Da ich nur diese eine Prozedur für enen Freund schreibe, der von Win keine Ahnung hat und nur seine Eisenbahnsteuerung auf diesem alten PC mit 1 GB Festplatte hat, habe ich auch keine Lust, Win98 auf meinem PC zu installieren.
Meine o.g. Prozedur werde ich mal testweise beim nächsten Treffen laufen lassen und schaun, was an Fehlern herauskommt.
Ich werde ihm eine Sicherungsprozedur einfachster Form erstellen.

1. ein Verzeichnis auf dem USB-Stick Sl-Sicherung
2. in diesem Verzeichnis 20 Unterverzeichnisse mit Namen 01 bis 20 (also bis zu 20 Sicherungen
2. in jedem Verzeichnis eine Prozedur zur Sicherung, die die Daten in dem Unterverz. Sl ablegt und gleichzeitig eine Rückholprozedur erstellt.
3. nach jeder Sicherung muß er das Verzeichnis umbenennen in das aktuelle Sicherungsdatum oder sich anderswo notieren
Die Struktur sieht dann nach der 1. Sicherung so aus:
Sl-Sicherung
01 mit Batch-Datei zur Sicherung und zum Rückholen
Sl Verzeichnis der gesicherten Daten
02 nur Batchdatei zum Sichern
03 nur Batchdatei zum Sichern
u.s.w.
Die DOS-Box muss er halt von Hand schliessen. Das Starten einer DOS-Box mit besonderen Parametern kann ich ihm nicht zumuten und ist auch nicht nötigl.
Im Alter von 74 Jahren und keine Ahnung von PC und Windows ist dies möchlicherweise problematisch.

Die Prozedur ist nicht schön. Sie muss noch etwas bereinigt werden, aber so etwa sieht sie aus.
@echo .
@echo .
@echo Datum heute ist %d% Uhreit %h%:%mi% 
@echo .
@echo .
@echo Beim Sichern muss das Eisenbahnprogramm Sl beendet sein
@echo sonst kommt eine Share-Verletzung (zu sichernde Dateien in Benuetzung)

@echo .
pause
 
@echo . 


@xcopy C:\Sl Sl\ /E /I /C /Q /H /R /Y


set datei=SL-zurueck-holen.bat
@echo off

@echo @echo off >%datei%
@echo @echo . >>%datei%
@echo @echo . >>%datei%

@echo @echo Beim Sichern muss das Eisenbahnprogramm Sl beendet sein >>%datei%
@echo @echo sonst kommt eine Share-Verletzung (zu sichernde Dateien in Benuetzung) >>%datei%

@echo @echo . >>%datei%

@echo pause  >>%datei%

@echo @echo .  >>%datei%
@echo @echo.  >>%datei%

@echo xcopy Sl C:\Sl /E /I /C /Q /H /R /Y >>%datei%
@echo @echo . >>%datei%
@echo @echo Datenwiederherstellung wurde durchgefuehrt >>%datei%
@echo @echo . >>%datei%
 
@echo pause >>%datei%
@echo exit >>%datei%

@echo .
@echo .
@echo Die Datensicherung wurde durchgefuehrt
@echo .


pause
@echo .

exit
[Edit Biber] Skizze mit den vielen @Echoes in Code-Tags gesetzt. [/Edit]
Member: pieh-ejdsch
pieh-ejdsch Nov 08, 2013 at 21:56:18 (UTC)
Goto Top
moin,

Wenn denn soviele Probleme auftauchen müssen dies eben umschifft werden.
Die Sekunden werden daher unter den Tisch fallen.
Die Prozedur fürs setzen der Variablen sollte so zu lösen sein:
@echo off
set File=Datetime.txt
del   %file% 2>nul
echo.>%file%
set   month=01 02 03 04 05 06 07 08 09 10 11 12
set   hours=13 14 15 16 17 18 19 20 21 22 23 
set    days=24 25 26 27 28 29 30 31
set minutes=32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
for %%Y in (%hours%) do dir %file% |find "%file%" |find ".20%%Y" >nul && set "YY=%%Y"   
 rem erst den Mittelteil separieren, da dieser von Punkten Umschlossen ist
for %%M in (%month%) do dir %file% |find "%file%" |find ".%%M." >nul && set "MM=%%M"   
 rem Mit Hilfe der zwei Punkte des Mittelteils den ersten Teil extrahieren
for %%D in (%month% %hours% %days%) do dir %file% |find "%file%"  |find "%%D.%MM%." && set "DD=%%D"  
for %%h in (00 %month% %hours%) do dir %file% |find "%file%" |find " %%h:" >nul && set "HH=%%h"  
for %%m in (00 %month% %hours% %days% %minutes%) do dir %file% |find "%file%"  |find ":%%m" >nul && set "Min=%%m"  
del   %file%
echo(
echo Jahr:    %YY%
echo Monat:   %MM%
echo Tag:     %DD%
echo Stunde:  %HH%
echo Minute:  %min%

Gruß Phil
Mitglied: 113992
113992 Nov 09, 2013 at 22:26:05 (UTC)
Goto Top
Hallo pieh-ejdsch,
Während des Schreibens dieses Textes habe ich langsam die Vorgehensweise verstanden.
meine Datumsdatei Datum.txt enthält (ob auch in Win98 weiß ich nicht)

Aktuelles Datum: 09.11.2013
Aktuelle Zeit: 2:39:05,34 (bei einstelligen Stunden)

Warum gibt es keine Unstimmigkeit, wenn es einmal File groß geschrieben und dann file heißt?
Das Kommande echo.>%file% dachte ich ist wohl fehlerhaft. Es überschreibt Datum und Zeit.
Aber OhO - welch Überraschung, nicht der Inhalt der Datei, sondern der Inhalt der Ausgabe von "dir" wird hier ausgewertet. Es muss noch nicht mal eine Datei mit Namen Datum.txt vorhanden sein.
Rafiniert.
Jetzt suche ich das Jahr mit Maske 20xx im Bereich 13 - 23 (2013 ...)
Analog für Monat, Tag, Stunde, Minute die entsprechende Anzahl der Variablen.
Jetzt hoffe ich nur, dass unter win98 Tag und auch Minute immer 2-stellig sind. auch bei 01.12. oder 00:xx Uhr. In Win7 ist es richtig.

Ich schreibe hier so viel,
1. um damit anzugeben, dass ich deinen Weg verstanden habe
2. um anderen, die vielleicht überlegen, was diese Prozedur macht, dies zu erklären.
Die Prozedur braucht für die Abarbeitung mehr Zeit, als für die Sicherung.
Der xcopy auf diesem Schnecken-PC braucht schon einige Minuten. Ich dachte schon, entwas falsch gemacht zu haben. Vielleicht schränke ich auch die zu sichernden Dateien noch ein, wenn ich ermitteln kann, in welchen Dateien die Daten liegen. Der sichere Weg dürfte aber die Komplettsicherung sein, da ich das Programm weder kenne noch damit arbeite.

Wenn die Prozedur fertig ist, werde ich sie nochmas posten.
Besten Dank und Gruß

Tiliman
Mitglied: 113992
113992 Nov 10, 2013 at 10:07:11 (UTC)
Goto Top
Hallo pieh-ejdsch,
Die Datei %file% muss natürlich vorhanden sein.
Ein Test mit "dir" ergibt einen Ablauf von guten 9 Sekunden.
Ein Test, die Ausgabe von "dir" in eine Datei
und diese Datei mit "type" auswerten ergibt einen Ablauf von 6 Sekunden.
Auf den Schnecken-PC hochgerechnet, vielleicht ein wesentlicher Unterschied.
Wenn man die Ausgabe des "dir" in eine Variable bringen kann und dann die Variable mit "echo" auswertet, vielleicht ist der "echo" Befehl noch schneller.

Wenn "Endoro" recht hat, was ich annehme, dann kann nicht mit Substring-Befehlen gearbeitet werden.
Rein theoretisch sollte dies noch schneller gehen.
Dann müsste ich aber die Ausgabe dieser einen Zeile dir %file% | find "Datum" in eine Variable leiten können.
Zunächst werde ich auf dem Win98-PC den Test mit Substring einer beliebigen Variablen durchführen.
Bis dahin:
1. Sicherungsversion ist abgespeckt
2. Sicherungsversion die von dir mit der Änderung auf "type".
bis dahin
Gruß

Tiliman
Mitglied: 113992
113992 Nov 11, 2013 at 18:21:52 (UTC)
Goto Top
Hallo wieder,
und noch'n Problem mit den Prozeduren.
Die abgespeckte Prozedur ist jetzt im Einsatz und läuft.
Die Ordner 01 bis 10 sind eingerichtet. Die Sicherung und Rückholung laufen.
Für die bessere und neue Prozedur reicht der Speicherplatz für die Batchdatei (u.Variablen) nicht aus.
Die Speicheraufteilung ist wie folgt:
Gesamt Belegt ---frei
636------- 63 --------573 (K)
0----------0------------0 (oberer Bereich)
0----------0------------0 (Reserviert)
31744-------188--31556
in Config.sys kann doch Command.com /E:xxxx angegeben werden.
Welcher Wert ist hier sinnvoll? 1024 oder 2048 ?? oder doch nur 512 weil nur 573 frei sind?
Kann diese Config.sys im laufenden System eingestellt werden für den nächsten Boot?
Ich habe nich nicht nachgesehen, was dort steht und wo die config.sys abgespeichert ist.
Steht sie ganz primitiv auf Laufwerk C: oder in versteckten Bereichen?
Noch eine Idee:
Wenn die Prozedur in mehrere Batch-Dateien gesplittet ist, die sich nacheinander aufrufen, wird dann weniger Speicher benötigt? Ich habe die Befürchtung, dass nicht.

Tiliman grüßt alle armen geplagten Helfer.
Mitglied: 113992
113992 Nov 26, 2013 updated at 19:25:38 (UTC)
Goto Top
Hallo servus wieder (Letzte Meldung zu diesem Beitrag von mir)

Damit ist alles Erforderliche gelöst.
Die Erweiterung des Umgebungsbereiches werde ich noch versuchen.
Hier meine Lösung:
Sichern:
MS-DosBox in Taskleiste mit Einstellung: Ausführen in E:\ (USB-Stick)
Dort Eingabe
s Datum
Die Prozedur s sichert in Ordner Datum und dort die Rückholprozedur und sichert die Sicherungsprozedur.
Die Rückholprozedur kopiert die Daten nach C:
@echo off
echo .
copy D:\s.bat E:\
set ziel= E:\Sl-Sicherung\%1
if NOT exist E:\Sl-Sicherung mkdir Sl-Sicherung
if exist  %ziel% rmdir /S /Q %ziel%
mkdir %ziel%
set sich=%ziel%\Sl-Sicherungsdatum.txt
echo Eisenbahnprogramm Sl beendet???
echo .
@pause
@echo .
echo gesichert wird mit Datum  %1
echo zurueckgeladene Daten haben Datum: %1 >%sich%
echo .
xcopy C:\Sl %ziel%\Sl\ /E /I /C /Q /H /R /Y
set holen=%ziel%\SL-zurueck-holen.bat
echo @echo off >%holen%
echo echo . >>%holen%
echo type %sich%  >>%holen%
echo echo . >>%holen%
echo echo Eisenbahnprogramm bendet???  >>%holen%
echo pause  >>%holen%
echo echo.  >>%holen%
echo xcopy Sl C:\Sl /E /I /C /Q /H /R /Y >>%holen%
echo echo . >>%holen%
echo echo Datenwiederherstellung ist fertig >>%holen%
echo echo Box schliessen
echo echo . >>%holen%
echo pause >>%holen%
echo exit >>%holen%
echo .
echo Sicherung ist abgeschlossen mit Datum: %1
echo .
pause
echo .
exit

Gruß
Tiliman
Member: pieh-ejdsch
pieh-ejdsch Dec 21, 2013 at 15:23:48 (UTC)
Goto Top
moin Tiliman,

ich habe die Prozedur zur Erstellung der Variablen Tag, Monat, Jahr, Zeit (hh mm) nochmals überarbeitet.
Die Ausgabe des DIR war dann doch etwas anders als erwartet.
Ein verknüpfter Folgebefehl kann nicht angelegt werden, nur die Auswertung des Errorlevels ist möglich.
Choice.com wertet das Format des Datum sowie die erste Ziffer von Datum und Uhrzeit aus.
Die Größe der Variablenwerte in der Umgebung werden sehr beschränkt und daher die nicht nachher benötigten Variablen entsprechend zeitig genug gelöscht.
Zum Einsparen der Variablen sind die Dateinamen fest eingetragen.
Der Batch arbeitet zur Ermittlung der Variablen im %temp% Verzeichnis.
Nacher geht er wieder ins Gestartete Verzeichnis und löscht die Tempdateien.

Ob die Batch nun 20 Sekunden oder eine Minute benötigt ist doch auch egal. (hier war es nach einem Liedschlag fertig)

Eine gestartete Verknüpfung *.pif der Test.Batch mit der Einstellung in den Eigenschaften (Registerkarte Programm) mit der Befehlszeile
C:\WINDOWS\COMMAND.COM /y /k C:\TEST.BAT
lässt ein Zeilenweises Debugging der Batch zu.

Getestet unter einem Virtuell angelegten Windows 98:
@echo off
ver|find "Windows 98" >nul  
if errorlevel 1 goto :Error98
if Datum.==%1. goto :Datum
if Zeit.==%1. goto :Zeit
if Form.==%1. goto :Form
if BAT.==%1. goto :Beginn
if /?.==%1. goto :Hilfe
prompt $g
echo.|Date|find "A"  
echo.|Time|find "A"  
:: ++ File "%temp%\TempEin.txt"   
echo.>"%temp%\TempEin.txt"  
echo.exit>>"%temp%\TempEin.txt"  
<"%temp%\TempEin.txt" command /k prompt cd $P |find ":" |find /v "exit" >"%temp%\TempBak.bat"   
<"%temp%\TempEin.txt" command /k prompt $N |find ":" |find /v "exit" >>"%temp%\TempBak.bat"   
if exist "%temp%\TempBat.bat" del "%temp%\TempBat.bat"  
:: ++ File "%temp%\TempBat.bat"   
copy %0 "%temp%\TempBat.bat" >nul  
cd "%temp%"  
C:
call TempBat BAT
call TempBak
:: -- Files Neues.bat Temp???.*
del "%temp%\Neues.bat"  
del "%temp%\Temp???.*"  
echo ----- Variablen -----
echo 	JJ=%JJ%
echo 	MM=%MM%
echo 	TT=%TT%
echo 	HH=%HH%
echo 	 m=%M%
echo 	ss=%SS%
if not .%ms%==. echo 	ms=%ms%
if not .%wday%==. echo        Wday=%Wday%
echo.
echo Zeitstempel: %JJ%%MM%%TT%-%HH%%M%%SS%
rem Hier kommt Dein Programm zum sichern hin
rem oder das Sicherungsprogramm wird hier ausgeführt.


pause
exit
:Error98
echo Programm nur speziell fuer Windows 98 Optimiert.
goto :Ende
:Erfolg

:Beginn
for %%i in (Wday JJ MM TT HH M SS ms Dateform) do set %%i=
:: ++ File TempAus.bat Neuses.bat
type nul>TempAus.bat
type nul>Neues.bat
echo.|Date|>TempEin.txt find "("  
echo exit >>TempEin.txt
<TempEin.txt command /k prompt call TempBat Form |find ":" >>TempAus.bat  
echo.>>TempAus.bat
echo exit |command /k prompt call TempBat Datum $D |find "call" >>TempAus.bat  
echo.>>TempAus.bat
echo exit |command /k prompt call TempBat Zeit $T |find "call"   >>TempAus.bat  
echo.>>TempAus.bat
TempAus
goto :eof

:Form
echo J|choice /s /n /c:%4 >nul
for %%i in (1 4 7) do if errorlevel %%i set D=%%i
:: +++ Var D D1 D4 D7
set D%D%=JJ
echo M|choice /s /n /c:%4 >nul
for %%i in (1 4 7) do if errorlevel %%i set D=%%i
set D%D%=MM
echo T|choice /s /n /c:%4 >nul
for %%i in (1 4 7) do if errorlevel %%i set D=%%i
set D%D%=TT
:: +++ Var D2 D3
set D2=%D4%
set D3=%D7%
:: --- Vars D4 D7 D
for %%i in (D4 D7 D) do set %%i=
set Dateform=%D1% %D2% %D3%
goto :Ende

:Datum
:: +++ Var Datum
set %1=%3
if .==.%4 set %1=%2
:: +++ Var Wday
if not .==.%4 set Wday=%2
:: +++ Var T
echo %Datum% |choice /n /c:.,-\ >nul
if errorlevel 1 set T=.
if errorlevel 2 set T=,
if errorlevel 3 set T=-
if errorlevel 4 set T=\
:: ++ File TempChk.bat TempEin.txt
echo.>TempEin.txt
echo.exit>>TempEin.txt
<TempEin.txt command /k prompt find "%%2 %%4%%2" $LTempIst.bat $G$GTempFlt.bat |find "find" |find /v "exit" >TempChk.bat   
:: -- File TempEin.txt
del TempEin.txt
:Teil1A
:: +++ Var DF %D1%
set DF=%D1%
echo %Datum% |choice /n /c:1234567890 >nul
for %%i in (1 2 3 4 5 6 7 8 9 10) do if errorlevel %%i set %D1%=%%i
:: ++ File TempStx.bat
>TempStx.bat echo if %%%D1%%%==10 set %D1%=0
call TempStx
:Teil1B
:: ++ TempIst.bat TempFlt.bat
type nul>TempIst.bat
type nul>TempFlt.bat
>TempStx.bat echo set String=%%%DF%%%
:: +++ Var String
call TempStx
>>TempIst.bat for %%b in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK %D1% %String%%%b %Datum%
call TempIst
:: ++ File TempChk
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
>TempStx.bat echo set FString=%%%D1%%%
:: --- Var Astring
set Astring=
:: +++ Var FString
call TempStx
:: +++ Var Next
set Next=Teil2A
echo :%Datum% |find ":%FString%%T%" >nul  
if errorlevel 1 goto :plus2
:Teil2A
set DF=%D2%
del TempIst.bat
>>TempIst.bat for %%a in (0 1 2 3) do echo call TempCHK %D2% %%a %Datum% %%%D1%%%%T%
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
>TempStx.bat echo set String=%%%DF%%%
:: +++ Var %D2%
call TempStx
del TempIst.bat
>>TempIst.bat for %%b in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK %D2% %String%%%b %Datum% %%%D1%%%%T%
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
>TempStx.bat echo set FString=%%%D1%%%%T%%%%D2%%%
>>TempStx.bat echo set Astring=%%%D1%%%%T%
call TempStx
echo :%Datum% |find ":%FString%%T%" >nul  
set Next=Teil3A
if errorlevel 1 goto :plus2
:Teil3A
set DF=%D3%
del TempIst.bat
>>TempIst.bat for %%a in (0 1 2 3) do echo call TempCHK %D3% %%a %Datum% %%%D1%%%%T%%%%D2%%%%T%
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
:: +++ Var %D3%
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
>TempStx.bat echo set String=%%%DF%%%
call TempStx
del TempIst.bat
>>TempIst.bat for %%b in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK %D3% %String%%%b %Datum% %%%D1%%%%T%%%%D2%%%%T%
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
>TempStx.bat echo set FString=%%%D1%%%%T%%%%D2%%%%T%%%%D3%%%
>>TempStx.bat echo set Astring=%%%D1%%%%T%%%%D2%%%%T%
call TempStx
set Next=Teilx
echo :%Datum%: |find ":%FString%:" >nul  
if errorlevel 1 goto :plus2
:Teilx
:: --- Vars D1 D2 D3 String AString FString SubN SubMax T DF Next
for %%i in (D1 D2 D3 String AString FString SubN SubMax T DF Next) do set %%i=
del TempChk
goto :Ende

:Plus2
:: +++ Vars SubN SubMax
set SubN=0
set SubMax=2
:Nummer
>TempStx.bat echo set String=%%%DF%%%
call TempStx
del TempIst.bat
>>TempIst.bat for %%x in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK %DF% %String%%%x %Datum% %AString%
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
:: .... Zählschleife Durchgang
echo %SubN%|choice /n /c:0123456789 >nul
for %%i in (1 2 3 4 5 6 7 8 9 10) do if errorlevel %%i set SubN=%%i
if %subn%==%SubMax% for %%i in (%Next%) do goto :%%i
goto :Nummer

:Zeit
@echo off
:: +++ Vars Zeit ms HH
set %1=%2
set ms=%3
type nul>TempFlt.bat
type nul>TempIst.bat
echo %Zeit% |choice /n /c:120 >nul
for %%i in (1 2 3) do if errorlevel %%i set HH=%%i
if %HH%==3 set HH=0
:: ++ File TempEin.txt
echo.>TempEin.txt
echo.exit>>TempEin.txt
<TempEin.txt command /k prompt find "%%2 %%4%%2" $LTempIst.bat $G$GTempFlt.bat |find "find" |find /v "exit" >TempChk.bat   
:: -- File TempEin.txt
del TempEin.txt
>TempIst.bat type nul
>>TempIst.bat for %%h in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK HH %HH%%%h %Zeit%
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
del TempIst.bat
>>TempIst.bat for %%M in (0 1 2 3 4 5) do echo call TempCHK M %%M %Zeit% %HH%: 
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
:: +++ Var M
call TempFlt
del TempFlt.bat
del TempChk.bat
del TempIst.bat
>>TempIst.bat for %%m in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK M %M%%%m %Zeit% %HH%:
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
del TempIst.bat
>>TempIst.bat for %%S in (0 1 2 3 4 5) do echo call TempCHK SS %%S %Zeit% %HH%:%M%:
ren TempChk TempChk.bat
call TempIst
ren TempChk.bat TempChk
>TempChk.bat echo set %%1=%%2
:: +++ Var SS
call TempFlt
del TempFlt.bat
del TempChk.bat
del TempIst.bat
>>TempIst.bat for %%s in (0 1 2 3 4 5 6 7 8 9) do echo call TempCHK SS %SS%%%s %Zeit% %HH%:%M%:
ren TempChk TempCHK.bat
call TempIst
>TempChk.bat echo set %%1=%%2
call TempFlt
del TempFlt.bat
del TempChk.bat
del TempIst.bat
goto :Ende
:Hilfe
echo Sowas - noch keine Hilfe Vorhanden.
:Ende
:eof

Gruß Phil
Mitglied: 113992
113992 Dec 21, 2013 at 18:50:24 (UTC)
Goto Top
Hallo Phil,
danke für deine Mühe.
Soviel Prozedur mit so wenig Inhalt. - Bitte nicht auf dich beziehen. Beileibe nicht.
Ich will erklären, warum ich diesen Ausspruch hier mache:

Dieser besagte Herr hat soviel Verständnis von PC-Sachen, dass er mir bei meinem letzten Besuch noch nichtmal sagen konnte, auf welchen seiner vielen (geschenkten USB-Sticks) nun eigentlich die letzten Sicherungen drauf ist.

Ich habe diesem Bekannten einen Uralt-Laptop mit winXP für die Eisenbahnsteuerung eingerichtet. Da sind dann noch ca. 500 MB frei. Die Eisenbahnsteuerung benötigt ja nur Speicher im KB-Bereich. Dort läuft die von dir erstellte Prozedur ohne Speichermangel problemlos.
Damit kann er dann auch im Wohnzimmer (bei seiner Gattin sitzend) die Parameter der Eisenbahn anpassen und auf das effektive System mit USB-Stick übertragen. Ich überlege auch, ob ich ihm WinXP installieren soll, Ich habe ja noch 2 XP-Pro Lizenzen und die ISO Datei einschl. SP3 vorrätig.
Nur die Aktivierung hapert, da kein Internet vorhanden ist, aber da gibt es ja noch die Umgehung der Aktivierung über registry. Als abgekapseltes System sind ja auch weder Update noch Virenscanner erforderlich.
Dennoch werde ich - im eigenen Interesse - deine Prozedur durcharbeiten, sie zu verstehen versuchen, auf Win7 testen, und dann auf dem Win98 Rechner ausprobieren -
aber voraussichtlich erst im neuen Jahr (Weihnachten/Neujahr kommen viele Besuche, viele Feste).
Im Command-Fenster Win98 habe ich übrigens xms/ems Speicher auf 5120 eingestellt. Der Speicher reichte trotzdem nicht.

Alles Gute zu Weihnachten und Neujahr - und -
auf dass möglichst viele deiner Wünsche sich der Realität weitestgehend annähern.
Gruß Tiliman
.
Member: Lochkartenstanzer
Lochkartenstanzer Dec 21, 2013 at 19:02:09 (UTC)
Goto Top
Zitat von @113992:

Nur die Aktivierung hapert, da kein Internet vorhanden ist, aber da gibt es ja noch die Umgehung der Aktivierung über
registry

Für die Aktivierung reicht ein Telefonanruf. da braucht man kein internet und keine Krücken mit registry-Änderungen.

lks
Mitglied: 113992
113992 Dec 21, 2013 at 20:31:11 (UTC)
Goto Top
Hallo Iks,

ja, ich weiß,
ich hab es mit dem genannten PC und XP home (oder so) probiert. Der Laptop wurde ihm so geschenkt. Das Windows war nicht aktivert. Die Wartezeit war abgelaufen. Ich habs über Tel. versucht, und es hat nicht geklappt. Den WLAN-USB-Treiben konnte ich dann ebenfalls nicht mehr installieren.
Entweder war Windows tatsächlich geklaut oder schon auf einer anderen Hardware aktiviert und geht auch dann nicht, wenn die alte Hardware vernichtet ist.

Ich habe dann testweise mein Pro darauf installiert aber noch nicht aktivert. Den Tip mit registry hab ich erst danach erfahren, sonst wäre die Installation des Treibers möglich gewesen.
Wenn ihm das System so passt, dann werd ich es mit diesem WinXP Pro nochmals telefonisch versuchen. Ich hab ja 30 Tage Zeit.
Ggfs. - ich habe ja inzwischen einen WLAN-USB-Stick, dann muß ich eben den Treiber installieren und die Aktivierung über Internet versuchen oder nach Ablauf der Zeit doch anders aktivieren und dann den Treiber installieren. Es gibt ja auch ein Gültigkeitsprogramm von MS.

Gruß Tiliman
und frohe Weihnacht und gutes Neues Jahr
Member: Lochkartenstanzer
Lochkartenstanzer Dec 22, 2013 at 11:53:02 (UTC)
Goto Top
Zitat von @113992:

Die Wartezeit war abgelaufen. Ich habs über Tel. versucht, und es hat nicht geklappt. Den WLAN-USB-Treiben konnte ich dann
ebenfalls nicht mehr installieren.
Entweder war Windows tatsächlich geklaut oder schon auf einer anderen Hardware aktiviert und geht auch dann nicht, wenn die
alte Hardware vernichtet ist.

Vermutlich hat er eine OEM-version draufgebügelt bekommen, die nur auf der ursprüglichen Hardware ohen Aktivierung läuft. Bei anderen Geräten muß man dann eien gültige Lizenz eintippen und aktivieren. Das Dumme ist nur, die Lizenz muß genau zu der Product-IdD passen, die auf der Platte ist. Also gültige Linzenznumemr eintippen udn aktiveren udn gut ist.

lks

PS: Auf den Lizenzaufklebern steht normalerweise zu welchem Medium diese Nummer gehört, z.B. X11-47374 bei einem DELL-OEM-XP-Home.
Mitglied: 113992
113992 Dec 22, 2013 at 21:25:26 (UTC)
Goto Top
Hei Lochkartenstanzer,
Es war keine CD/DVD dabei, auf dem Laptop ist kein Aufkleber, der Laptop lag bei ihm schon lange auf Halde. Er weiss nicht mal mehr, von wem der Laptop stammt. Dieser Laptop wird wohl auf dem Müll landen, denn das Programm benützt aus undefinierbaren Gründen auf diesem Laptop nicht den ganzen Bildschirm. Also winXP vernichten und Laptop auf den Müll. Dann habe ich wieder 2 Lizenzen.
Er hat noch weitere Laptaps (mindestens einen mit Win2000 und Win98 als Dual-BS und 30 GB FP) zu Hause liegen. Auf diesem läuft das besagte Programm besser. Viellelicht läuft die Sicherungsprozedur auf Win2000 ohne Speichermangel.
Ich war wohl zu schnell mit den Überspielen. Ich hätte zuerst mit einem Programm die Lizenznummer auslesen und mit USB-WLan in mein Netzwert einbinden sollen. Ich habs nicht getan.
Geschehen ist geschehen.
Was solls, die Lizenzen für WinXP benötige ich sowieso nicht mehr.
Ich trauere nur meiner Schnelligkeit im Prinzip nach, nicht den Lizenzen.
Ich habe ja jetzt wieder eine neue Prozedur erhalten, die für Win98 optimiert sein soll und auch nur auf Win98 läuft. Die werd ich demnächst testen. Dann sehe ich weiter.

Herzliche Grüße

Tiliman