Jump to content

VBScript WinServer2k3R2: Ausführen eines Befehls


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Forum,

 

mein Script funktioniert soweit. Es holt sich Dateiinhalt aus einer Datei von einem anderen Server und soll diese dann in einer Mail verschicken. Dazu haben wir hier ein Programm "mailsend.exe".

 

Dim a, b
Set a = WScript.CreateObject("WScript.Shell")
b = a.run("mailsend.exe < conf.txt", 1, true)

 

b beinhaltet danach den Integer-Wert 1.

Eine Mail kommt allerdings nicht an. Führe ich den Befehl "mailsend.exe < conf.txt" in der DOS-Box aus, bekomme ich die Mail.

 

Auch mit a.exec habe ich es schon versucht:

 

Dim a, b, c
Set a = CreateObject("WScript.Shell")
Set b = a.Exec("mailsend.exe < conf.txt")

c = LCase(b.StdOut.ReadAll)
msgbox c

 

Funktioniert wie erwartet nicht. Die MsgBox ist leer. Mail kommt nicht an.

 

Wie gesagt, der Befehl ist 100%ig richtig und funktioniert, wenn man ihn so in die DOS-Box eingibt.

Die mailsend.exe gibt bei Erfolg den Text "Mail sent successfully" oder eben "Mail could not be sent" auf der Konsole aus. Deshalb dürfte die MsgBox in keinem Fall leer sein...

 

Die drei Dateien (das VB-Script, die mailsend.exe und die conf.txt) sind alle im selben Verzeichnis auf dem Server.

 

Woran liegt es, dass der Befehl nicht ausgeführt wird?

 

Lg

Link zu diesem Kommentar

Moin,

 

wenn du in einer "DOS-Box" bist (das ist keine, wir reden hier schließlich nicht von Windows 95), hast du ein Standardverzeichnis. Erzeugst du ein Shell-Objekt, bist du sehr wahrscheinlich in einem anderen Verzeichnis. Versuch es also mal mit der vollen Pfadangabe zu exe- und config-Datei.

 

Oder du nimmst einfach eine Lösung, die schon funktioniert.

 

faq-o-matic.net Batch Command Line Mailer

faq-o-matic.net Visual Basic Script Mailer

 

Gruß, Nils

Link zu diesem Kommentar

Danke für die Hilfe.

Wie erwartet hat das auch nicht funktioniert, auch wenn die Idee natürlich gut ist.

 

Habe aber inzwischen herausgefunden, wie es funktioniert. Den Befehl "mailsend.exe < conf.txt" habe ich in eine cmd-Datei gepackt und rufe diese über b.EXEC auf. Funktioniert tadellos. Ich denke, EXEC und RUN stören sich am <, oder an Leerzeichen...

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...