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, 3757 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
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (8)

Frage von JayyyH zum Thema Switche und Hubs ...

Vmware
Veeam für VM Ware Backup Fehler (1)

Frage von JoergN1968 zum Thema Vmware ...

Windows Server
gelöst C-Partition vergrößern, bei vorhandenem D? (7)

Frage von 1410640014 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...