[WINNT] script werkt niet

Pagina: 1
Acties:

  • Barracuda
  • Registratie: Augustus 2000
  • Laatst online: 05-05-2023
ik heb een scripje gemaakt, deze werkt wel onder windows XP/2k maar niet onder windows NT

het scriptje zet een aantal rechten en kijkt of je hostname & OS juist is
helaas loopt hij gewoon het script door en kijkt geeneens naar de goto commando's

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
@echo off

if hostname==install goto :Hostname_Error

if not ver=="Windows NT Version 4.0" goto :Win_Error

:copy_profile.000
if not exist "%windir%\profiles\staf.000" goto :copy_profile.001

xcopy /s/e/i/o/k/c "%windir%\profiles\staf" "%windir%\profiles\staf.000"

:copy_profile.001
if not exist "%windir%\profiles\staf.001" goto :copy_profile.002

xcopy /s/e/i/o/k/c "%windir%\profiles\staf" "%windir%\profiles\staf.001"

:copy_profile.002
if not exist "%windir%\profiles\staf.002" goto :Set_User_Rights

xcopy /s/e/i/o/k/c "%windir%\profiles\staf" "%windir%\profiles\staf.002"
goto :Set_User_Rights

:Set_User_Rights

####
#### Hier moeten de rechten komen
####
####

Goto :Complete

:Hostname_error
Echo An error has been detected...
Echo Your hostname is invalid...
goto :end

:Win_Error
Echo An error has been detected...
Echo Your Windows version is not Windows NT...
goto :end

:Complete
Echo Done All...
Echo Have a nice day...
goto :end

:end

gratis af te halen SUN ultra1 compleet


Verwijderd

Volgens mij is %windir% niet goed(in winnt) en bedoel je %systemroot%

wat voor error'sgeeft hij eigenlijk precies?

[ Voor 37% gewijzigd door Verwijderd op 10-07-2003 10:09 ]


Verwijderd

if hostname==install goto :Hostname_Error

if not ver=="Windows NT Version 4.0" goto :Win_Error
dit slaat nergens op...
hostname is geen bekende variabele... (%hostname% zou dat dan moeten zijn; maar die bestaat ook niet...)

code:
1
if %computername%==install goto ....


ver is een commando met output = Windows NT Version 4.0
dat kan je niet zo testen

code:
1
for /f "tokens=1 delims=;" %%a in ('ver') do if not %%a==Windows NT Version 4.0 goto error


%windir% is wel goed maar je if not statements zijn een beetje vaag...

ik neem aan dat je naar profile.001 wilt kopieren als profile.000 WEL bestaat
en zet spaties tussen je switches...

[ Voor 30% gewijzigd door Verwijderd op 10-07-2003 12:03 ]


Verwijderd

als je nog aan het schrijven bent haal dan de @echo off weg... dan zie je tenminste wat er gebeurt...

  • Han
  • Registratie: Juli 2001
  • Niet online

Han

Ik gooi deze even naar Programming & Webscripting

Alleen ik weet niet of dit topic voldoet aan hun policy. Het hoort iig niet in Windows Operated Systems :)

oeps, foutje. Webdesign & Graphics ipv Programming & Webscripting. Het heeft iig niks met de werking van een WOS te maken. Het is een script. Dat ie niet werkt onder WinNT heeft niks met WinNT zelf te maken maar met de forumulering van het script. Vandaar geen WOS

[ Voor 54% gewijzigd door Han op 10-07-2003 12:33 ]

Doubt thou the stars are fire; Doubt that the sun doth move; Doubt truth to be a liar; But never doubt I love.


  • Barracuda
  • Registratie: Augustus 2000
  • Laatst online: 05-05-2023
ok ik was zelf al even bezig geweest
hostname is veranderd naar %computername% en deze bleek ook Capital sensitive te zijn
dus deze werkt nu wel

(maar hostname is een commando die windows XP wel opvangt)

nu nog
if not ver=="Windows NT Version 4.0" goto :Win_Error

ver is ook een commando dus dat mag ook niet
maar de variable %OS% heb ik ook niets aan want die staat standaard in windows 2k&XP ook op Windows_NT

gratis af te halen SUN ultra1 compleet


  • Krypt
  • Registratie: April 2000
  • Laatst online: 12:53
Zet wel even bij alle IF statements quotjes neer; anders krijg je errors in het scherm als een variable leeg is..
dus: if "%computername%"=="install" goto...
Nu zal het bij deze variable niet zo snel voorkomen, maar het is een stuk netter.

Het regeltje van iis5_rulez werkt bijna.. kleine aanpassing voor NT; nadeel van ver is namelijk dat ie 2 spaties achter de output gooit..
Dus: for /f "tokens=1 delims=;" %x in ('ver') do if not "%a"=="Windows NT Version 4.0 " goto...

Zo zou ie moeten werken..

Pvouput live


Verwijderd

in batch wel %%a gebruiken. vanaf command line %a

als je %computername% leeg is wil je dat er een error optreedt :)

[ Voor 42% gewijzigd door Verwijderd op 10-07-2003 13:40 ]


Verwijderd

Barracuda schreef op 10 juli 2003 @ 13:12:
maar hostname is een commando die windows XP wel opvangt
nope, maar het kan zijn dat die ergens anders door gedefinieerd wordt... standard is dit geen var in geen enkele win os...

test on winxp:
H:\>echo hostname
hostname

H:\>echo %hostname%
%hostname%

oftewel onbekende var.

  • Krypt
  • Registratie: April 2000
  • Laatst online: 12:53
Verwijderd schreef op 10 July 2003 @ 13:38:
in batch wel %%a gebruiken. vanaf command line %a

als je %computername% leeg is wil je dat er een error optreedt :)
Sorry; had het idd in een cmdprompt zitten proberen.. batch is dubbelde %'en..

Ennuh.. als je %computername% leeg is wil je inderdaad dat ie een error weergeeft die je zelf wilt of een bepaalde handeling doet..
En niet in de trant van "==install was unexpected at this time." omdat de syntax dan niet goed is. Nu zal ie dan de syntax overslaan en vrolijk verder gaan met de volgende regel...

Vandaar dat je bij een if-statement met variabelen altijd "" moet gebruiken, voor het geval dat de variabele leeg is...

[ Voor 17% gewijzigd door Krypt op 10-07-2003 14:32 ]

Pvouput live


  • Barracuda
  • Registratie: Augustus 2000
  • Laatst online: 05-05-2023
ok het blijkt dus dat xcopy /o ook niet werkt onder windows NT

nu werkt alles behalve de windows versie

het vreemde is dat deze
code:
1
for /f "tokens=1 delims=;" %%a in ('ver') do if not %%a==Windows NT Version 4.0 goto error

wel werkt als ik "IF" en "IF not" omdraai in windows NT maar niet onder windows XP ???

gratis af te halen SUN ultra1 compleet


  • Krypt
  • Registratie: April 2000
  • Laatst online: 12:53
Lees mijn post even Barracuda.. dat komt omdat WinNT 4.0 2 spaties achter het result van 'ver' gooit...

dus dat laatste even veranderen in: if not "%%a"=="Windows NT Version 4.0 " goto error (dus 2 spaties achter "4.0")

Pvouput live


  • Barracuda
  • Registratie: Augustus 2000
  • Laatst online: 05-05-2023
Verwijderd schreef op 10 July 2003 @ 13:45:
[...]


nope, maar het kan zijn dat die ergens anders door gedefinieerd wordt... standard is dit geen var in geen enkele win os...

test on winxp:
H:\>echo hostname
hostname

H:\>echo %hostname%
%hostname%

oftewel onbekende var.
hostname is geen variable
doe maar eens cmd
dan hostname

gratis af te halen SUN ultra1 compleet


  • Barracuda
  • Registratie: Augustus 2000
  • Laatst online: 05-05-2023
Krypt schreef op 10 July 2003 @ 14:45:
Lees mijn post even Barracuda.. dat komt omdat WinNT 4.0 2 spaties achter het result van 'ver' gooit...

dus dat laatste even veranderen in: if not "%%a"=="Windows NT Version 4.0 " goto error (dus 2 spaties achter "4.0")
helaas dit had ik al geprobeerd
regel is nu
code:
1
for /f "tokens=1 delims=;" %%a in ('ver') do if not %%a=="Windows NT Version 4.0  " goto :Win_Error


maar deze pakt die ook niet

hij mag desnoods ook een ander variable pakken als deze maar anders is in andere OS'sen

gratis af te halen SUN ultra1 compleet


  • Krypt
  • Registratie: April 2000
  • Laatst online: 12:53
Lezen is ook een kunst he :)
Je bent de aanhalingstekens om de %%a vergeten... :Y)

Pvouput live


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

ipv
code:
1
if not "%%a"=="Windows NT...
zou ik gebruiken:

code:
1
if "%%a" NEQ "Windows NT..."

  • Barracuda
  • Registratie: Augustus 2000
  • Laatst online: 05-05-2023
Krypt schreef op 11 July 2003 @ 10:05:
Lezen is ook een kunst he :)
Je bent de aanhalingstekens om de %%a vergeten... :Y)
Tnx Hij werkt :)

gratis af te halen SUN ultra1 compleet

Pagina: 1