Toon posts:

[XP] Hulp nodig bij printermapping controleren in batch file

Pagina: 1
Acties:
  • 590 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste tweakers,

Mijn eerste post als tweakersgroentje, en al meteen raad vragen met een probleem, je moet het maar durven ;). Maar goed, ter zake.
Ik probeer via een Batch logon script drie LPT poorten op mijn clients te mappen zodat er in windows XP kan worden afgedrukt vanuit DOS-programma's.
Aangezien de Mappings reeds aanwezig kunnen zijn, doe ik eerst een check hierop:

code:
1
2
if exist LPT1: NET USE LPT1: /DELETE /YES
net use LPT1: \\Printserver\HP_4345


Deze check is ingebouwd om de volgende foutmelding te vermijden :
Systeemfout 85.

De lokale apparaatnaam wordt al gebruikt.
Wat is nu het probleem: Wanneer de mappings naar de lpt-poorten nog niet bestaan, krijg ik volgende foutmelding:
Kan de netwerkverbinding niet vinden

Typ NET HELPMSG 2250 voor meer hulp.
Dit wordt veroorzaakt door mijn check die een true oplevert, in plaats van de verwachte false. Blijkbaar is de LPT-poort reeds aanwezig maar lokaal gemapt, niet over het netwerk.
Na twee uur zoeken naar een andere manier om te kunnen kijken of de mapping reeds bestaat, ben ik ondertussen nog niet veel verder gekomen, en ik vroeg me af of iemand mij zou kunnen op weg helpen.
Het vervelende aan de situatie is dat verplicht word om Batch te gebruiken. In VB-script was ik zeker zelf tot een oplossing gekomen, mijn Batch ervaring daarentegen is nogal miniem te noemen.

Alvast bedankt!

Edit: Net gemerkt dat ik m'n topic beter bij Windows Clients had aangemaakt, sorry :/

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
WEB >> WOS

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

C:\>if exist LPT1 echo foo
foo

Die bestaat altijd. Je kunt desgewenst altijd 'net use ...delete...' doen. Als je de output lelijk vindt kan je het misschien pipen naar NUL:
echo foo > NUL


Edit:
welke OS(en) trouwens? De DOS / Win9x command.com is iets anders dan de NTx cmd.
Oeps :X

[ Voor 19% gewijzigd door F_J_K op 07-08-2007 09:01 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Enforcer
  • Registratie: Februari 2001
  • Niet online
LPT1 port disablen in je Apparaatbeheer

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Kan je de uitvoer van "NET USE" niet parseren om zo te zien of je LPT port via het netwerk wordt gemapped? :)

Verwijderd

Topicstarter
F_J_K schreef op maandag 06 augustus 2007 @ 18:42:
C:\>if exist LPT1 echo foo
foo

Die bestaat altijd. Je kunt desgewenst altijd 'net use ...delete...' doen. Als je de output lelijk vindt kan je het misschien pipen naar NUL:
echo foo > NUL


Edit:
welke OS(en) trouwens? De DOS / Win9x command.com is iets anders dan de NTx cmd.
OS stond opgegeven in de originele post: om DOS-programma's te laten afdrukken in Windows XP. Dus Windows XP.
Het redirecten naar nul kan inderdaad misschien een oplossing vormen, maar dan door het toe te passen op de NET USE /delete, gewoon om die foutmelding niet meer te krijgen.
Anderzijds, het parsen van net use is ook een goeie tip, maar ik heb hier nog geen ervaring mee in batch.

Bedankt!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

offtopic:
O-) @XP

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Het parsen van NET USE kan je doen met 'FOR' e.d.:

for /f "tokens=2" %i in ('net use ^| findstr /i LPT') do @echo %i


Als je dit uitvoert op een command prompt, krijg je - als het goed is - alle LPT mappings te zien, je zou ze vervolgens kunnen wissen door iets als:

for /f "tokens=2" %i in ('net use ^| findstr /i LPT') do @net use %i: /delete


(als je dit in eeen batchfile wil zetten, meot je alle %i's vervangen door %%i)

Verwijderd

Topicstarter
oeh, dat doet precies wat ik nodig heb :D
Bedankt!
Pagina: 1