Syntaxfehler in Batchscript

FunCraft

Newbie
Registriert
Dez. 2016
Beiträge
3
Ich habe vor kurzem ein Script geschrieben, dass zur Einrichtung einiger Notebooks verwendet werden soll. Es erstellt einen Standardbenutzer und eine Admin und kann noch einige weitere kleine Sachen einige weitere Sachen. Nun habe ich folgendes Problem:
Der Befehl
Code:
set /p passwd=Bitte geben Sie ein Passwort fuer den Standardbenutzer ein:
gibt den Error ":" kann syntakisch an dieser Stelle nicht verarbeitet werden aus. Im folgenden Quelltext findet ihr den oben gennanten Befehl in Zeile 98. Der selbe Error tritt auch in den Zeilen 102, 117 und 121 auf.

Code:
@echo off
cls

::Abkuerzungen: 	ad=Administrator
::			sb=Standardbenutzer

:: Variablen setzen
::---------------------------------------------------------------------------------------
set /P old=Name des Standardbenutzers (verliert Admin-Rechte falls vorhanden):
::---------------------------------------------------------------------------------------
set /P new=Name des neuen Administrators:
::---------------------------------------------------------------------------------------
set one=1
set zero=0
::---------------------------------------------------------------------------------------
set sbexist=0
for /f "tokens=1" %%a in ('net User ^| findstr %old%') do set User=%%a
	if '%User%' EQU '%old%' (
		set sbexist=1
	)
for /f "tokens=2" %%a in ('net User ^| findstr %old%') do set User=%%a
	if '%User%' EQU '%old%' (
		set sbexist=1
	)
for /f "tokens=3" %%a in ('net User ^| findstr %old%') do set User=%%a
	if '%User%' EQU '%old%' ( 
		set sbexist=1
	)
::---------------------------------------------------------------------------------------
set adexist=0
for /f "tokens=1" %%a in ('net User ^| findstr %new%') do set User=%%a
	if '%User%' EQU '%new%' (
		set adexist=1
	)
for /f "tokens=2" %%a in ('net User ^| findstr %new%') do set User=%%a
	if '%User%' EQU '%new%' (
		set adexist=1
	)
for /f "tokens=3" %%a in ('net User ^| findstr %new%') do set User=%%a
	if '%User%' EQU '%new%' ( 
		set adexist=1
	)
::---------------------------------------------------------------------------------------
set sbisad=0
if '%sbexist%' == '%one%' (
	for /f "tokens=1" %%a in ('net User %old% ^| findstr *Administratoren') do set User=%%a
		if '%User%' EQU '*Administratoren' (
			set sbisad=1
		)
	for /f "tokens=2" %%a in ('net User %old% ^| findstr *Administratoren') do set User=%%a
		if '%User%' EQU '*Administratoren' (
			set sbisad=1
		)
)
::---------------------------------------------------------------------------------------
set sbissb=0
if '%sbexist%' == '%one%' (
	for /f "tokens=1" %%a in ('net User %old% ^| findstr *Benutzer') do set User=%%a
		if '%User%' EQU '*Benutzer' (
			set sbissb=1
		)
	for /f "tokens=2" %%a in ('net User %old% ^| findstr *Benutzer') do set User=%%a
		if '%User%' EQU '*Benutzer' (
			set sbissb=1
		)
)
::---------------------------------------------------------------------------------------
set adisad=0
if '%adexist%' == '%one%' (
	for /f "tokens=1" %%a in ('net User %new% ^| findstr *Administratoren') do set User=%%a
		if '%User%' EQU '*Administratoren' (
			set adisad=1
		)
	for /f "tokens=2" %%a in ('net User %new% ^| findstr *Administratoren') do set User=%%a
		if '%User%' EQU '*Administratoren' (
			set adisad=1
		)
)
::---------------------------------------------------------------------------------------
set adissb=0
if '%adexist%' == '%one%' (
	for /f "tokens=1" %%a in ('net User %new% ^| findstr *Benutzer') do set User=%%a
		if '%User%' EQU '*Benutzer' (
			set adissb=1
		)
	for /f "tokens=2" %%a in ('net User %new% ^| findstr *Benutzer') do set User=%%a
		if '%User%' EQU '*Benutzer' (
			set adissb=1
		)
)
::---------------------------------------------------------------------------------------
:: Bedingungen pruefen und entsprechende Befehle ausfuehren
:conditions
::---------------------------------------------------------------------------------------
if '%sbexist%' == '%zero%' (
	set /p passwd=Bitte geben Sie ein Passwort fuer den Standardbenutzer ein:
	net user %old% %passwd% /add >Nul
) else if '%sbexist%' == '%one%' (
	:passold
	set /p rq=Moechten Sie ein Passwort fuer den Standardbenutzer erstellen (J/N):
	if /i '%rq%' == 'j' (
		net user %old% %passwd% >Nul
		echo Fuer den Benutzer %old% wurde ein Passwort erstellt.
	) else if '%rq%' == 'n' (
		echo Es wird kein Passwort fuer den Benutzer %old% erstellt.
	) else (
		echo Sie koennen sich nur zwischen J und N entscheiden.
		timeout 2
		goto passold
	)
)
::---------------------------------------------------------------------------------------
if '%adexist%' == '%zero%' (
	set /P passwd=Bitte geben Sie ein Passwort fuer den Administrator ein:
	net user %new% %passwd% /add >Nul
) else if '%adexist%' == '%one%' (
	:passnew
	set /P rq=Moechten Sie ein Passwort fuer %new% erstellen (J/N):
	if /i '%rq%' == 'j' (
		net user %new% %passwd% >Nul
		echo Fuer den Benutzer %new% wurde ein Passwort erstellt.
	) else if '%rq%' == 'n' (
		echo Es wird kein Passwort fuer den Benutzer %new% erstellt.
	) else (
		echo Sie koennen sich nur zwischen J und N entscheiden.
		timeout 2
		goto passnew
	)
)
::---------------------------------------------------------------------------------------
if '%sbisad%' == '%zero%' (

) else if '%sbisad%' == '%one%' (
	net localgroup Administratoren %old% /delete >Nul
	if '%sbissb%' == '%one%' (
	
	) else if '%sbissb%' == '%zero%' (
		net localgroup Benutzer %old% /add >Nul
	)
	echo %old% ist nun ein Standardbenutzer.
)
::---------------------------------------------------------------------------------------
if '%adisad%' == '%zero%' (
		net localgroup Administratoren %new% /add >Nul
) else if '%adisad%' == '%one%' (

	if '%adissb%' == '%one%' (
		net localgroup Benutzer %new% /delete >Nul
	) else if '%sbissb%' == '%zero%' (
		
	)
	echo %new% ist nun ein Administrator.
)
::---------------------------------------------------------------------------------------
echo Druecken sie eine Beliebige Taste um das Programm zu beenden.
pause >Nul

Ich hoffe ihr könnt mir helfen und bedanke mich schonmal im Voraus für die Mühe:)
 
Zuletzt bearbeitet:
Dann lass den Doppelpunkt mal weg?
 
Hab ich schon versucht. Dann läuft das Script durch. Das sieht dann jedoch ziemlich besch... aus.
 
Versuche den Text in Anführungszeichen zu setzen?
 
Zurück
Oben