Toon posts:

[XP] Windows batch variabele uur maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een WSUS server draaien in een Workgroup omgeving.
Op alle client pcs moet een script gedraait worden die de juiste register instellingen toevoegt.
Maar ik wil graag een controle maken die de tijd checked en dan een variabele %hour% aanmaakt en daar dan 1 uur bij op telt en die waarde in het register zet.
Alleen hoe krijg ik dat uur te pakken?
Ben nu al een paar uur aan het googlen, maar kom er niet uit.
Heb wel een programma batchmon gevonden die veel meer kan met batch files, alleen dat wil ik niet.
Het moet op iedere windows 2000/xp pc werken zonder extra software.

Verwijderd

Dit zou perfect het huidige uur moeten geven:

code:
1
for /F "delims=:" %i in ('echo %time%') do echo %i


Dan ipv echo gewoon via set /a in een variabele zetten en +1 is geen probleem.

Verwijderd

Topicstarter
ja super!! het werkt.


edit:


for /F "delims=:" %i in ('echo %time%') do set /a uur=%i+1

echo %uur% _/-\o_

[ Voor 72% gewijzigd door Verwijderd op 01-12-2005 16:49 ]


Verwijderd

Topicstarter
Voor in een batch bestand, met %i werkt het natuurlijk niet.

for /F "delims=:" %%i in ('echo %time%') do set /a hour=%%i+3

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Vertel nog even welke Windows versie het hier over gaat zodat ik dat in je topic titel kan zetten (zie hierover ook de Windows Operating Systems Policy) :)

Verder - je laatste reply snap ik niet helemaal. Werkt het nu wel of niet? :P

Verwijderd

Topicstarter
Het gaat om windows XP.
Maar het werkt goed in batch file en op de cmd.
Als je het op de cmd uitvoert moet je bij %%i één % teken weg laten. dus %i.

Voor zover werkt het dus, alleen het volgende probleem waar ik op stuit is :

Als ik dus het uur in een het register wil zetten als een reg_dword waarde klopt het niet.

REG ADD "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" /v ScheduledInstallTime /t reg_dword /d 00000%hour% /f

%hour% is bijv 17, dan komt er een hexadecimale waarde van f in :S (decimaal is dat dus 15)
Ik moet er dus eigenlijk %hour% = 19 van maken in dit geval.
alleen als ik %hour% = 18 doe of hoger dan pakt het register de waarde niet.
17 is het hoogste wat ik in kan voeren.

[ Voor 7% gewijzigd door Verwijderd op 06-12-2005 09:33 ]


Verwijderd

Misschien kan je voor een toepassing als dit beter eens kijken naar JScript of VBscript (via de windows scripting host). Hiermee kan je scripts gewoon in JavaScript of VBScript schrijven, dit vind ik persoonlijk veel handiger en flexibeler dan batch files die eigenlijk nogal in het DOS tijdperk zijn blijven hangen.

Verwijderd

Topicstarter
het is nu gelukt, heb in het script een aantal regels gezet die vanaf 10 uur alles omzet naar hexadecimale ( 0xa ) waarden.
En dan komt het er wel goed in gelukkig!
Ik denk dat java idd de oplossing zou zijn geweest, maar daar heb ik al helemaal geen kaas van gegeten. :+
Pagina: 1