racingrob
Goto Top

Batch IFMEMBER mehrfach Treffer

Hallo zusammen,

bastel mir grad nen logon script.

dieses soll per ifmember die gruppenzugehörigkeit prüfen und dann das richtige laufwerk verbinden!

das fu nktioniert ja alles wunderbar.

nun gibt es aber ein paar sonderfälle die zu zwei gruppen gehören.
ich würd gern den nutzer die auswahl überlassen wit welchem laufwerk er sich verbinden will!

mein problem ist, das ifmember nur 0 oder 1 als errorlovel ausgibt...

also wenn er in einer gruppe ist gibts die 1 und wenn er in 2 gruppen ist gibts auch nur die 1....

jemand ne idee zur umsetzung?

mfg rob
Kommentar vom Moderator Biber am 15.03.2011 um 23:16:22 Uhr
Beitrag verschoben von "Muss wohl Windows sein" nach "Batch % Shell".

Content-ID: 162651

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

Ausgedruckt am: 05.11.2024 um 15:11 Uhr

Biber
Biber 15.03.2011 um 10:35:42 Uhr
Goto Top
Moin racingrob,

Zitat von @racingrob:
mein problem ist, das ifmember nur 0 oder 1 als errorlovel ausgibt...

also wenn er in einer gruppe ist gibts die 1 und wenn er in 2 gruppen ist gibts auch nur die 1....

jemand ne idee zur umsetzung?
Ich sach ma' so:
Die hochgezüchtete cmd.exe des dritten Jahrtausends wäre technisch bereits dazu ausgelegt, 1 und 1 zusammenzuzählen...

Grüße
Biber
pieh-ejdsch
pieh-ejdsch 15.03.2011 um 14:05:38 Uhr
Goto Top
na das mit dem Abzählen kann ja findstr problemlos

@echo off&setlocal

set "Gruppenliste="Verwaltung" "Buero" "Verkauf" "Rest""  
set "Gruppe-LaufwerkeVerbindung="Verwaltung V: \\server\Verw" "Buero V: \\server\Buero" "Verkauf X: \\server2\Verk" "Rest V: \\server\rest""  


(for %%i in (%Gruppenliste%) do @D:\ifmember %%~i ||(@echo %%i&@set "Groups_%%~i=1"))|findstr /n "^"|findstr /b "2:">nul&& goto :Auswahl  
for %%i in (%Gruppe-LaufwerkeVerbindung%) do for /f "tokens=1*" %%j in ("%%~i") do if defined Groups_%%j net use %%k  
goto :eof
:Auswahl
cls
type nul>"%temp%\auswahl.txt"  
(for %%i in (%Gruppe-LaufwerkeVerbindung%) do for /f "tokens=1*" %%j in ("%%~i") do if defined Groups_%%j (@echo %%k>>"%temp%\auswahl.txt"&@echo    %%k)find /n  
echo.&echo zugehörige Zahl zum Laufwerk eingeben!&echo.&echo    Beenden
set /p Auswahl= :
(
set /a  "Auswahl=%Auswahl%"  
) 2>nul || goto :Auswahl
if %Auswahl% == 0 goto :eof
for /f %%i in ('findstr /n "^" "%temp%\auswahl.txt"^|find /c ":"') do set /a max = %%i  
if %auswahl% gtr %max% goto :Auswahl
for /f "tokens=1*" %%i in ('findstr "%Auswahl%" "%temp%\auswahl.txt"') do net use %%j  

Gruß Phil