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 Mar 15, 2011 um 22:16:22 Uhr
Beitrag verschoben von "Muss wohl Windows sein" nach "Batch % Shell".

Content-Key: 162651

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

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

Member: Biber
Biber Mar 15, 2011 at 09:35:42 (UTC)
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
Member: pieh-ejdsch
pieh-ejdsch Mar 15, 2011 at 13:05:38 (UTC)
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