13. november 2005 - 13:52Der er
10 kommentarer og 1 løsning
Batch program, der kan udføre bestemt handling ud fra netværk.
Idet jeg bruger min bærbar på tre forskellige netværk, har jeg brug for en lille batch program, der kan ændre standardprinter ud fra hvilket netværk jeg er ved. Lad os for nemheds skyld kalde de tre netværk for hhv. NET1, NET2 og NET3.
Jeg ved man kan ændre standardprinter indstillingerne via en batch fil med følgende kommando: RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "PRINTERNAVN". Det jeg har brug for er, en batch kode til at udføre følgende:
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det største problem er at finde ud af hvilket net man er på. Har du nogen idé til hvordan man kunne gøre det? Evt. output fra en dos-kommando der kunne analyseres, f.ex. en af net xxx?
Prøv at køre følgende kommandoer på de tre net, og se om der er noget af det de skriver der kan bruges til at finde ud af hvilket net du er på: ipconfig /all net statistics server net config server
Hvis der er det bør det være trivielt at lave en bat-fil der parser det kommandoen skriver.
Jeg har rent faktisk fundet en løsning selv, men synes ikke det virker særlig godt, idet den er meget langsommelig.
Koden jeg har brugt er som følgegde: IF MULIGT_AT_LOGGE_IND_PÅ_NET1 THEN VÆLG PRINTERNET1 ELSE IF MULIGT_AT_LOGGE_IND_PÅ_NET2 THEN VÆLG PRINTERNET2 ELSE VÆLG PRINTERNET3
Som skrevet er denne løsning meget langsom, idet den skal vente på login-timeout, ved hvert forsøg. I mine øjne: en løsning, men LANGT FRA en god løsning.
Hvis man kan bruge ipadressen fra ipconfig: @echo off for /F "tokens=2 delims=:" %%I in ('ipconfig ^|findstr Standardgateway') do set IpAddress=%%I set IpAddress=%IpAddress: =% if [%IpAddress%]==[192.168.2.1] ( echo IpAddress Match 1 ) if [%IpAddress%]==[192.168.2.113] ( echo IpAddress Match 2 )
Det virker med en dansk XP Home, det skal måske justeres lidt med andre Windows versioner.
Hvis din løsning virker kan jeg så få dig til at knytte et par kommentarer til din kode, så jeg også kan lære lidt af den? :-)
Jeg er rent fysisk kun ved det ene netværk d.d., hvorfor jeg ikke har mulighed for, at se om din kode virker. Jeg har dog kontaktet to kollegaer, som muligvis vender tilbage med oplysningerne. :-)
Det er egentligt ret simpelt: ipconfig kender du, output fra denne pipes over i findstr med |, da det er i en for kommando må vi "escape" den med ^ findstr finder alle linier der indeholder Standardgateway (der er kune en) for delen parser alle linier (der er stadig kun en) og deler den ved : (pga delims=:) tokens=2 fortæller at vi vil have anden token, dvs det efter : %%I bliver sat til dette og vi sætter IpAddress Denne linie "set IpAddress=%IpAddress: =%" fjerner alle mellemrum i linien Resten er blot at checke ip-adresse
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.