Top-Themen

Aktuelle Themen (A bis Z)

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

VBS - Object als Return Value einer Funktion

Mitglied: MSchyska

MSchyska (Level 1) - Jetzt verbinden

22.02.2007, aktualisiert 23.02.2007, 11644 Aufrufe, 4 Kommentare

Hallo,

wie gebe ich aus einer Funktion ein Object als return value zurück und wie greife ich dann darauf zu?

Was ist hier falsch:

01.
Set objFSO = CreateObject("Scripting.FileSystemObject")
02.

03.
Set objFile1 = CreateTextFile("d:\temp\huhu", True)
04.

05.
WScript.Echo objFile1.Path
06.

07.
Function CreateTextFile(strFile, OverWriteFlag)
08.

09.
On Error Resume Next
10.
	
11.
Set CreateTextFile = objFSO.CreateTextFile(strFile, OverWriteFlag)
12.

13.
If Err.Number <> 0 Then
14.
	WScript.Echo "CreateTextFile: Fehler beim Anlegen von " & strFile
15.

16.
	If Err.Number = -2147024784 Then
17.
		WScript.Echo "Fehlernr. " & Err.Number & ": nicht genügend Plattenplatz"
18.
	Else
19.
		WScript.Echo "Fehlernr. " & Err.Number & ": " & Err.Description
20.
	End If
21.
End If
22.

23.
On Error GoTo 0
24.

25.
End Function ' CreateTextFile
Mitglied: bastla
22.02.2007 um 17:40 Uhr
Hallo MSchyska!

Auch wenn ich der Function nicht den Namen einer FSO-Methode gegeben, sondern sie vielleicht "MakeTextFile" genannt hätte, funktioniert die Funktion.

Der Fehler entsteht erst beim Test, da ein offenes "TextFile"-Objekt keine "Path"-Eigenschaft hat. Versuch zB statt der "WScript.Echo"-Zeile
01.
objFile1.WriteLine "Dieses Textfile wurde mit einer Function erstellt."
02.
objFile1.Close
Grüße
bastla
Bitte warten ..
Mitglied: MSchyska
23.02.2007 um 10:00 Uhr
Hallo bastla,

du hast recht, so funktioniert es.

Danke

MSchyska
Bitte warten ..
Mitglied: MSchyska
23.02.2007 um 10:59 Uhr
Hallo bastla,

Dein Vorschlag funktioniert im Erfolgsfall (d.h. wenn ich eine Textdatei anlegen kann).
Wenn das Anlegen der Textdatei aber einen Fehler produziert bekomme ich in der Zeile

01.
Set objFile1 = CreateTextFile("d:\temp\huhu", False)
die Fehlermeldung

01.
C:\Scripts\tObject1.vbs(3): Exception: Object required: 'CreateTextFile(...)'
Wie kann ich den Fehler nach Aufruf der Funktion "CreateTextFile" sauber abfangen?

Gruß

MSchyska
Bitte warten ..
Mitglied: bastla
23.02.2007 um 11:45 Uhr
Hallo MSchyska!

Wenn die Funktion kein Objekt zurückliefert, erhältst Du als Ergebnis "Nothing", also müsste
01.
If Not CreateTextFile("d:\temp\huhu", False) = Nothing Then Set objFile1 = CreateTextFile("d:\temp\huhu", False)
funktionieren. Allerdings wird bei jedem Aufruf der Funktion versucht, die Textdatei zu erzeugen, was bei einem nicht gewünschten Überschreiben das Vorhaben eigentlich schon zum Scheitern verurteilt ...

Alternativ kannst Du es natürlich über "On Error" versuchen, aber ich frage mich, wozu Du überhaupt den ganzen Aufwand treiben willst (nur wegen des in der Funktion selbst verwendeten Errorhandlings?). Eine Diskussion über saubere Programmierung möchte ich im Zusammenhang mit Scripting allerdings nicht führen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
C und C++

Return von C-Sharp ConsoleApp direkt in VBS ausgeben

gelöst Frage von mayho33C und C++3 Kommentare

Hallo @ All Ich weiß! VBS! Alter Hut! Trotzdem scheint es auf meine Frage irgendwie keine auffindbare Antwort zu ...

C und C++

Methode multiple return values

gelöst Frage von mayho33C und C++8 Kommentare

Hallo Community, ich habe wieder mal eine Frage und hoffe auf eure KnowHow! Ich möchte eine Methode erstelle die ...

Batch & Shell

PowerShell Compare-Object

gelöst Frage von derhoeppiBatch & Shell1 Kommentar

Hallo mit Hilfe von Compare-Object vergleiche ich zwei Array. Dabei kommen einige Unterschiede heraus. Ich habe ein führendes Array ...

Batch & Shell

PowerShell Object problem

gelöst Frage von CloudyBatch & Shell3 Kommentare

Hallo, ich habe aktuell ein kleines Problem. Ich erhalte eine CSV Datei mit den Spalten Standort und IP-Adresse zu ...

Neue Wissensbeiträge
Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 1 StundeWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 20 StundenWindows 101 Kommentar

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 22 StundenSicherheit5 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Microsoft Office
TEAMS - Skype for business
Tipp von Nebellicht vor 22 StundenMicrosoft Office1 Kommentar

Hallo, ms ersetzt Skype for business durch TEAMS. Also, nicht wundern wenn mit der OFFICE365 Umgebung kein Skype for ...

Heiß diskutierte Inhalte
Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs23 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...

Windows Server
Client in die Domäne einbinden - Allgemeine Frage dazu
gelöst Frage von RalphTWindows Server19 Kommentare

Moin, ich habe 2 DCs in einer Hauptstelle und 2 DCs in einer Nebenstelle. Ich bringe in der Hauptstelle ...