CMD / Set Variabele in batch file

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Hallo allemaal,

Als men achter de prompt: netsh wlan interface | findstr "\<SSID\>" intoetst krijgt men als output de naam van de SSID waar men op is aangesloten.

Nu wil ik dit in een variabele SET Q zien te plaatsen zodat ik deze weer elders middels ECHO Q.

Code:
set Q=netsh wlan interfact | findstr "\<SSID\>"


ECHO U bent aangesloten op: !Q!

Bovenstaande werkt niet. Wat doe ik hier verkeerd. Immers met bijvoorbeeld: set Q=%USERNAME% werkt het wel.

Hoe ik het nu heb, is niet hoe ik het wil hebben. De output staat met de code hieronder verdeeld over 2 regels.

Code:
echo U bent aangesloten op: & netsh wlan show interface | findstr /i "\<SSID\>"


Output ziet als volgt uit:

Code:
U bent aangesloten op : 
                     SSID                 : [I]<Naam SSID>[/I]

Bovenstaande moet dus op 1 regel.
Overigens weet ik niet of mijn vraag in het juiste forum staat. Zo ja.... mijn excuus.
 
Laatst bewerkt:
Gebruik <nul set /p in plaats van echo.
Met <nul set /p onderdruk je een nieuwe regel:

Code:
<nul set /p=U bent aangesloten op: & netsh wlan show interface | findstr /i "\<SSID\>"

Tardis
 
Beste Tardis, dank voor je inbreng. Het werkt, maar alleen nog niet geheel naar mijn zin.

Ik wil nu alleen de naam hebben staan. Kan dat ook met een kleine aanpassing of dient daar dan een FOR voor te worden gebruikt?

Voor alle duidelijkheid onderstaand de volledige code mbt bovenstaande. Het stuk welke in het rood is gekleurd, is jouw inbreng. Wellicht dat jij hier iets mee kan. Wat ik overigens ook zou willen, mits mogelijk. Is dat er een waarschuwing volgt als je de SSID welke in gebruik is, wilt verwijderen. Met dit laatste ben ik wel al bezig, maar als het voor jou een kleine moeite is dan zie ik graag jouw inbreng ook voor deze.

Code:
[I][/I][U][/U][B]Code verwijderd in verband met een fout.[/B]
Ik ben hierin erg vastgeroest. Is immers al lang geleden. :D
 
Laatst bewerkt:
De aangepaste code:

Code:
:VIND_SSID

cls
echo.
echo.
echo --------------------------------------------------------------------------------
echo 			GEVONDEN SSID / WLAN VERBINDINGEN
echo --------------------------------------------------------------------------------
[COLOR="#FF0000"]<nul set /p= U bent aangesloten op & netsh wlan show interface | findstr /i "\<SSID\>"[/COLOR]
echo.
echo.
echo			Nummer	:	 SSID
echo		       -------------------------------------------
echo				:

Set l=0

for /F "skip=1 tokens=2 delims=:" %%a in ('netsh wlan show profiles') do (
    set /A l+=1
    set "list[!l!]=%%a"
)

set SSID=%l%

for /L %%l in (1,1,%SSID%) do (
    echo	 		   %%l	:	!list[%%l]!!

    if not !G!==Lock echo !list[%%l]:~1!! >>WLAN_2_Log.txt
    echo >>WLAN_2_Log.txt
)

set G=Lock
echo !G!
echo.
echo.
echo --------------------------------------------------------------------------------
echo.

set A=
set /p A=Wilt u een SSID / WLAN verbinding verwijderen? 

if /I !A!==J (
    echo.
    echo.

    set B=
    set /p B=Type de naam van de te verwijderen SSID / WLAN verbinding: 

    findstr /i "\<!B!\>" WLAN_2_Log.txt
	
    if !errorlevel!==0 (
    :R
        cls
        echo.
        echo.
        echo SSID / WLAN verbinding: !B!, is op uw systeem gevonden.
        echo.
        echo.

        set /p C=Wilt u SSID: !B! echt verwijderen van uw systeem? 

        if /I !C!==J (
            ::netsh wlan delete profile name=!B!
            cls

            echo.
            echo.
            echo SSID: !B!, is gewist van uw systeem.
            echo.
            echo Druk een toets om terug te gaan.
            
            set G=""

[COLOR="#00FF00"][/COLOR][I] ::EERDERE FOUT WELKE NU IS VERWIJDERD.[/I]

            pause>nul
            goto VIND_SSID
        ) else (
            if /I !C!==N (
                cls
                echo.
                echo.
                echo SSID !B!, is niet gewist van uw systeem.
                echo.
                echo Druk een toets om terug te gaan.

                pause>nul
                goto VIND_SSID
            ) else (
                cls
                echo.
                echo.
                echo Onjuiste keuze. Kies "J" voor JA of "N" voor NEE.
                echo.
                echo Druk een toets om terug te gaan.
                pause>nul
                goto R     
            )
        )
    ) else (
        cls
        echo.
        echo.
        echo SSID /WLAN verbinding: !B!, is niet op uw systeem gevonden.
        echo.
        echo Controleer de invoer en probeer alstublieft opnieuw.
        echo.
        echo Druk een toets om terug te gaan.
        pause>nul
        goto VIND_SSID)
    )
) else (
    if /I !A!==N (
        goto MENU
        set G=
        break >WLAN_2_Log.txt
    ) else (goto VIND_SSID)
    )
)
 
Laatst bewerkt:
Oke 2 mogelijkheden gevonden waarvan de 2e niet helemaal werkt. Graag de juiste oplossing aub. Ik bedoel de 1e kan toch simpeler??

Code:
1e mogelijkheid (welke juist werkt)

for /F "tokens=2 delims=:" %%r in ('netsh wlan show interface ^| findstr /i "\<SSID\>"') do (set "Y=%%r")
echo U bent aangesloten op SSID: !Y:~1!

2e mogelijkheid waarvan de output niet werkt. Dat wil zeggen er staan spaties voor de %%r.

for /F "tokens=2 delims=:" %%r in ('netsh wlan show interface ^| findstr /i "\<SSID\>"') do (echo U bent aangesloten op SSID: %%r)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan