Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Fehler bei nicht vorhandenem gosub-label abfangen?

Frage Entwicklung KiXtart

Mitglied: Bodenseehost

Bodenseehost (Level 1) - Jetzt verbinden

12.08.2009, aktualisiert 10:33 Uhr, 3770 Aufrufe, 1 Kommentar

Habe ein etwas pragmatisches script für die Druckerzuordnung laufen.

Was zunächst ganz normal eingestellt ist:

;Löschen bestehender Netzwerkdrucker:
DelTree("HKEY_CURRENT_USER\Printers\connections")

Verbindung der Drucker erfolgt über:
AddPrinterConnection("\\.........")
SetDefaultPrinter("\\...........")

funktioniert so weit.

Nun erfordert es unsere Konstellation, dass wir Drucker teilweise per Client und teilweise per User zuordnen... IdR hat jeder Client bestimmte Drucker zugeordnet, einige User bekommen dann noch ein paar Drucker mehr. Nun war ich ganz gerissen, und habe mir eine ganz einfache Zuordnung gebaut:

GOSUB @WKSTA
GOSUB @USERID

und jeweils Sprungmarken mit dem Workstation- oder Usernamen. Funktioniert ganz gut, ausser ein PC oder - häufiger - ein User findet sich nicht im Script. Dann fliegt das Script mit error "label not found" ab. Irgendwie klar.

Nun suche ich NICHT nach Tipps die Zuordnung anders zu machen, sondern - ich möchte diesen "faulen" weg weiter gehen ich - würde gerne wissen ob es eine Möglichkeit gibt, den Error abzufangen. Z.B. ein kurzer vorabcheck, ob die Sprungmarke überhaupt vorhanden ist, oder auch (bereits kurz versucht) eine Errorbedingung...???

Gibts da ideen?


Danke Euch schon mal
Mitglied: Bodenseehost
17.08.2009 um 13:56 Uhr
Gelöst...

Über "OPEN" lässt sich eine Datei - in meinem Fall das ablaufende Script selbstI - in den Speicher lesen (Mode 2 = nur Lesezugriff!), deren Inhalt kann Zeilenweise mit "READLINE" ausgelesen werden. Mit "INSTR" wird dann der jeweilige Zeileninhalt verglichen, ob ein bestimmter Teilstring - bei uns also ein mal @USERID und ein mal @WKSTA - vorhanden ist.

Sobald ein entsprechender Eintrag für Workstation und/oder UserID gefunden wurde, wird eine Hilfsvariable gesetzt, die dann ein Anspringen der entsprechenden Labels steuert. Auf diesem Wege werden nur die WKSTA und USERID angesprungen, die's im Script auch wirklich gibt.

Dann lässt sich also weiterhin recht einfach - und auch performant - für beliebige Clients und Benutzer individuelles Script oder eben Druckerzuweisungen hinterlegen.

Vielleicht braucht das ja mal jemand *g*.

Hier noch der relevante Auszug aus dem nun sauber und schnell laufenden Druckerscript:
01.
;** Sprung auf Labels für Clientnamen und/oder Benutzerid sofern vorhanden 
02.
$WKSTAExists=0 
03.
$USERIDExists=0 
04.
 
05.
IF Open(5,@LDrive+"\UEB\UEB_Map_Printer.kix",2)=0 
06.
   $x=ReadLine(5) 
07.
   WHILE @Error=0 
08.
      IF INSTR($x,@WKSTA) 
09.
         $WKSTAExists=1 
10.
      ENDIF 
11.
      IF INSTR($x,@USERID) 
12.
         $USERIDExists=1 
13.
      ENDIF 
14.
      $x=ReadLine(5) 
15.
   LOOP 
16.
ENDIF 
17.
 
18.
IF $WKSTAExists=1 
19.
   GOSUB @WKSTA 
20.
ENDIF 
21.
 
22.
IF $USERIDExists=1 
23.
   GOSUB @USERID 
24.
ENDIF 
25.
 
26.
GOSUB END
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Exchange Server
gelöst Exchange-Fehler: 550 No such recipient here (3)

Frage von Greyson zum Thema Exchange Server ...

Exchange Server
SBS 2011 Remote Zugriff Zertifikat Fehler (1)

Frage von andreas1234 zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (17)

Frage von oel-auge zum Thema Router & Routing ...