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

Vbscript Aufruf über cmd, farbige Fehlermeldungen möglich? Wie?

Frage Entwicklung VB for Applications

Mitglied: Nitrogenius

Nitrogenius (Level 1) - Jetzt verbinden

30.04.2009, aktualisiert 13:18 Uhr, 5582 Aufrufe, 27 Kommentare

Hallo zusammen,
nach kanpp 2 Stunden googlen habe ich mich nun mit letzter Hoffnung hier angemeldet.

Ich habe ein umfangreiches Copy-Script, das viele Statusmeldungen, Dateinamen etc. mit wscript.echo ausgibt (Ausgabe mit cscript über cmd).

Das klappt alles wunderbar, allerdings brauche ich farbige Schriftzüge (z.B. Dateinnamen grün, Fehlermeldungen rot usw.), da sonst die Übersicht sehr leidet.

Vereinfachtes Prinzip:
'''''''''''''''''''''''''''
If variable = 2 then
"schriftart auf grün stellen"
wscript.echo "Alles ok"
elseif variable = 3
"schriftfarbe auf rot stellen"
wscript.echo "Fehler"
End if

schriftfarbe zurücksetzen
[...viele Weitere Anweisungen]
'''''''''''''''''''''''''''

In der cmd selber bekomme ich die Schriftfarbe mit z.B. "color 0a" auf grün gestellt.
Diesen Befehl würde ich gerne in mein Script einbauen, schaffe es aber nicht.
Auch z.B.

Set WshShell = WScript.CreateObject("WScript.Shell")
wshshell.sendkeys "color 0a"

hilft nicht.

Kann mir jemand weiter helfen? Komme weder mit Google, der Windows-Scripting-Hilfe oder mit meinen Scripting Buch weiter.

Vielen Dank im Voraus,
Liebe Grüße,
Manuel
Mitglied: 76109
30.04.2009 um 14:16 Uhr
Hallo Nitrogenius,

damit hat es funktioniert:

01.
Set WshShell = WScript.CreateObject("WScript.Shell")  
02.
wshshell.sendkeys "color a {ENTER}"  'ohne 0 nur 0-F
Gruß Dieter
Bitte warten ..
Mitglied: LotPings
30.04.2009 um 14:30 Uhr
allo Nirtogenius,

J- und vbscript haben leider keine Befehle um die Farbe zu ändern.
Mit API Zugriffen ginge das, aber das kann vbscript nicht.

Leider wird sich da auch nichts mehr tun, es findet keine Weiterentwicklung des WSH statt.
In Powershell ist das inzwischen kein Problem aber wahrscheinlich für dich keine Lösung.

Eine Konvertierung/Kompilierung in VB / VB.net wäre eine Möglichkeit - so weit entfernt ist das nicht.
Und der vb.net Kompiler ist auf jedem PC mit Framework am Besten V2 schon vorhanden.

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
30.04.2009 um 14:39 Uhr
Hallo LotPings,

also, ich habe das jetzt nochmal mit Textausgabe getestet und festgestellt, dass die Farbumschalterei mit Textausgabe nicht so optimal funktioniert.

Aber kann man in VB-Script J-Script einbinden? Da gibt es diese Möglichkeit:
01.
var strVariable = "Dies ist eine Zeichenfolge"; 
02.
strVariable = strVariable.fontcolor("red");
Gruß Dieter
Bitte warten ..
Mitglied: LotPings
30.04.2009 um 16:19 Uhr
Du hast die script56.chm Datei schon heruntergeladen und in dein "%SYSTEMROOT%\HELP" Verzeichnis kopiert?

Wenn du in der Datei suchst findest du:
Setzt das HTML-Tag <FONT> mit dem COLOR-Attribut um Text in einem String-Objekt.

In der console gibts es aber kein HTML - das bezieht sich auf in HTA oder HTML eingebettete Script Blocks.

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
30.04.2009 um 20:02 Uhr
Hallo LotPings,

OK, danke für die Info.


Gruß Dieter
Bitte warten ..
Mitglied: Nitrogenius
30.04.2009 um 21:05 Uhr
Hallo,

Danke für die Antworten bisher.
Schade dass man da nichts machen kann. Bin in VB nicht fit und werde es daher auch nicht angehen (Code hat 6 Funktionen und zahlreiche Schleifen).

Mit dem vorletzten Beitrag kann ich leider nicht anfangen, u.a. script56.chm sagt mir nichts. Zudem muss das Script auf jedem Computer lauffähig sein, ohne vorige Einstellungen.

Sollte irgendwem noch ein Kniff bekannt sein, wäre ich wirklich dankbar.

Die Sache mit javascript geht sicher nicht, oder?

Lg,
Manuel
Bitte warten ..
Mitglied: LotPings
30.04.2009 um 21:39 Uhr
Leider nein,
javascript und jscript sind nicht das selbe.

script56.chm ist nur die Hilfe-Datei für vb- und jscript; die sollte jeder der eine Variante benutzt im Zugriff haben.

Links und auch andere interessante Info zum Scripten gibts u.A. auch hier: Dieseyer

Einen schönen Feiertag!
Bitte warten ..
Mitglied: 76109
02.05.2009 um 08:28 Uhr
Hallo Nitrogenius,

für Dein Problem habe ich eine etwas andere Lösung gefunden, die Du ja mal ausprobieren kannst.

Hiermit schreibst Du Deine Textmeldungen mit Farbangaben in eine HTA-Datei, die dann in einem
Windows-Fenster angezeigt werden.

Die Farbenwerte für den Hintergrund und Schrift können in verschiedenen Formaten angegeben werden.
Siehe Beispiel Const: Red1, Red2, Red3. Die Hintergrundfarbe wird mit Const BodyBG festgelegt.

Eine riesige HTML-Farbtabelle mit Namen, Hex-Werten und RGB-Werten sind hier zu finden:

http://www.farb-tabelle.de/de/farbtabelle.htm

Die Hta-Datei wird in dem Ordner abgespeichert, in dem sich auch das VB-Script befindet und bei
Beendigung des Scripts gelöscht.


01.
Option Explicit 
02.
 
03.
Const WindowSize = "640, 480" 
04.
 
05.
Const BodyBG = "#FFFFFF" 
06.
 
07.
Const Red1 = "#FF0000"		'Farbwert als Hex 
08.
Const Red2 = "red"		'Farbwert als Name 
09.
Const Red3 = "rgb(255,0,0)"	'Farbwert als RGB(R,G,B) Byte-Dezimal 0-255 
10.
 
11.
Const DarkBlue = "#00008B" 
12.
Const DarkGreen = "#006400" 
13.
Const Dar###ge = "#EE7600" 
14.
Const DarkMagenta = "#8B008B" 
15.
 
16.
Dim Fso, HtaFile, HtaPath 
17.
 
18.
'Main Beg 
19.
 
20.
    Call OpenHtaFile 
21.
     
22.
    Call WriteHtaFile("Textausgabe", Red1) 
23.
    Call WriteHtaFile("Textausgabe", Red2) 
24.
    Call WriteHtaFile("Textausgabe", Red3) 
25.
    Call WriteHtaFile("Textausgabe", DarkBlue) 
26.
    Call WriteHtaFile("Textausgabe", DarkGreen) 
27.
    Call WriteHtaFile("Textausgabe", Dar###ge) 
28.
    Call WriteHtaFile("Textausgabe", DarkMagenta) 
29.
 
30.
    Call ShowHtaFile	 
31.
  
32.
    Wscript.Quit 
33.
 
34.
'Main End 
35.
 
36.
 
37.
Private Sub OpenHtaFile() 
38.
    Set Fso = CreateObject("Scripting.FileSystemObject") 
39.
    HtaPath = Fso.GetParentFolderName(WScript.ScriptFullName) & "\Ausgabe.Hta" 
40.
    Set HtaFile = Fso.CreateTextFile(HtaPath) 
41.
 
42.
    With HtaFile 
43.
        .WriteLine "<html>" 
44.
        .WriteLine "<head>" 
45.
        .WriteLine "<title>Textausgabe</title>" 
46.
        .WriteLine "<head>" 
47.
        .WriteLine "<style type='text/css'>" 
48.
        .WriteLine "body { font-family:Arial, Tahoma; font-size:14px; background-color:" & BodyBG & "; }" 
49.
        .WriteLine "</style></head>"  
50.
        .WriteLine "<body onLoad='window.resizeTo(" & WindowSize & ")'>" 
51.
    End With 
52.
End Sub 
53.
 
54.
Private Sub WriteHtaFile(ByRef Text, ByRef Color) 
55.
    HtaFile.WriteLine "<font color='" & Color & "'>" & Text & "</font><br>" 
56.
End Sub 
57.
 
58.
Private Sub ShowHtaFile() 
59.
    Dim Shell 
60.
     
61.
    With HtaFile 
62.
        .WriteLine "</body>" 
63.
        .WriteLine "</html>" 
64.
        .Close 
65.
    End With 
66.
     
67.
    Set Shell = CreateObject("Wscript.Shell") 
68.
 
69.
    Shell.Run HtaPath, 1, True 
70.
 
71.
    Fso.DeleteFile HtaPath 
72.
End Sub
Gruß Dieter

[Edit] Aktualisiert 03.05.2009 - 12:20 Fenstergröße definieren[/Edit
Bitte warten ..
Mitglied: LotPings
02.05.2009 um 16:56 Uhr
Hallo Dieter,

bei der Kombination vbscript und html muß ich an hta denken,
damit könnte er doch statt auf die console in eine Listbox ausgeben,
da geht auch Farbe.

PS Du definierst red1 bis red3 und benutzt red -> Fehler.

Zum Thema HTA ein paar Links:
HTA Developers Center - Script Center
Add Color Options to a List Box

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
02.05.2009 um 17:17 Uhr
Hallo LotPings,

Ups, da habe ich wohl etwas übersehen. Die Konstanten hatte ich zum Schluss nochmal umbenannt und vergessen auch im Code zu ändern

Deine Links schau ich mir an. Danke.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
02.05.2009 um 18:25 Uhr
Hallo LotPings,

also, ich habe den Code-Beitrag komplett neu aktualisiert.

Die Datei wird jetzt als HTA-Datei gespeichert und mit WShell gestartet, was auch den Vorteil hat,
dass das Script jetzt wartet, bis das Fenster geschlossen wird und dann normal weiter läuft

Nochmals Danke für den Tip.

Gruß Dieter
Bitte warten ..
Mitglied: LotPings
02.05.2009 um 19:46 Uhr
Das ging ja schnell,

ich hatte das allerdings anders gedacht,
der OP könnte seinen vbscrript code direkt in die hta integrieren, dann kommen die "Farbigen" Texte in Echtzeit. Ich bin hier auch schon am rumprobieren und habe ein paar Ideen aus so einer hta einen DOS-Filter zu machen der LogZeiten einfügt, koloriert und eben gleichzeitig als TEE arbeitet. Das dauert aber noch etwas.

Guß
LotPings
Bitte warten ..
Mitglied: 76109
02.05.2009 um 19:58 Uhr
Hallo LotPings,

das hatte ich mir schon irgendwie gedacht, aber ehrlich gesagt habe ich jetzt keine Lust mehr, noch weiter
an dem Ding rumzubasteln. Es ist immer noch eine Alternative und wenn Du das anders hinkriegst, umso
besser. Dann schaue ich bei Dir ab.

Dann noch viel Spaß


Gruß Dieter
Bitte warten ..
Mitglied: 76109
02.05.2009 um 20:42 Uhr
Hallo nochmal,

PS. Eigentlich könnte man das ganze theoretisch auch über die <ANSI.SYS> machen. Oder?
Treiber laden und $[xy]-Anweisungen setzen....Meine Doskenntnisse enden bei DOS-Win98.

Gruß Dieter
Bitte warten ..
Mitglied: LotPings
02.05.2009 um 22:19 Uhr
Leider habe ich noch keine funktionierende Ansi.sys Version mit cmd.exe gesehen.
Es gibt zwar ein paar Tricksereien mit der command.com,
aber da ich inzwischen NIE mehr einen Standard Bildschrim mit 80*25/43/50 Zeilen habe,
erzeugt das meist ein nervtötendes hin und her Gezappel, so das ich das lieber lasse.

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
02.05.2009 um 22:42 Uhr
Hallo LotPings,

also, ich habe mir die HTA-Sache nochmal genauer angesehen und es ist eine Gute Idee,
das VB-Script in den BODY zu schreiben. Kann man ganz tolle Sachen machen.

Gibt es auch eine Möglichkeit das Hauptfenster in Breite und Höhe anzupassen?

Das mit der Ansi.Sys war nur so ne Idee, die mir gereade eingefallen war.


Gruß Dieter
Bitte warten ..
Mitglied: LotPings
02.05.2009 um 22:55 Uhr
Zitat von 76109:

Gibt es auch eine Möglichkeit das Hauptfenster in Breite und
Höhe anzupassen?

Im script Block eine Sub einbauen
01.
Sub Window_OnLoad 
02.
    window.resizeTo 800,350 
03.
End Sub
Gruß
LotPings
Bitte warten ..
Mitglied: 76109
02.05.2009 um 23:02 Uhr
Hallo LotPings,

Super, genau das habe ich gesucht und nicht gefunden. Danke


Gruß Dieter
Bitte warten ..
Mitglied: 76109
03.05.2009 um 14:06 Uhr
Hallo LotPings,

hattest Du an sowas gedacht

01.
<html> 
02.
<head> 
03.
<title>Textausgabe</title> 
04.
<HTA:APPLICATION  
05.
     ID="objTextAusgabe" 
06.
     APPLICATIONNAME="Text" 
07.
     SCROLL="auto" 
08.
     SINGLEINSTANCE="yes"> 
09.
</head> 
10.
<style type='text/css'> 
11.
     body { font-family:Arial, Tahoma; font-size:14px; background-color:#F0F0F0; } 
12.
</style> 
13.
</head>  
14.
  
15.
<SCRIPT LANGUAGE="VBScript"> 
16.
 
17.
    Const WindowWidth = 480 
18.
    Const WindowHeight = 320 
19.
 
20.
    Const Red = "#FF0000" 
21.
    Const DarkBlue = "#00008B" 
22.
    Const DarkGreen = "#006400" 
23.
    Const Dar###ge = "#EE7600" 
24.
    Const DarkMagenta = "#8B008B" 
25.
 
26.
 
27.
    Sub Window_OnLoad 	'Main Beg 
28.
 
29.
           window.resizeTo WindowWidth, WindowHeight 
30.
 
31.
           Call WriteBodyText("Textausgabe", Red) 
32.
           Call WriteBodyText("Textausgabe", DarkBlue) 
33.
           Call WriteBodyText("Textausgabe", DarkGreen) 
34.
           Call WriteBodyText("Textausgabe", Dar###ge) 
35.
           Call WriteBodyText("Textausgabe", DarkMagenta) 
36.
	 
37.
    End Sub		'Main End 
38.
 
39.
 
40.
    Sub WriteBodyText(Byref Text, Byref Color) 
41.
           TextList.InnerHTML = TextList.InnerHTML & "<font color='" & Color & "'>" & Text & "</font><br>" 
42.
    End Sub 
43.
 
44.
</SCRIPT> 
45.
 
46.
<body><span id = "TextList"></span></body> 
47.
</html>
Gruß Dieter

PS. Datei als *.HTA speichern
Bitte warten ..
Mitglied: LotPings
03.05.2009 um 16:24 Uhr
Sieht gut aus Dieter,
bei mir ist das eine Listbox in Fenstergröße und ich benutze den Font Lucida Console, Ausgabe optional mit Date+/Time Stamp.

Gruß
Bitte warten ..
Mitglied: 76109
03.05.2009 um 16:48 Uhr
Hallo LotPings,

die Fenstergröße habe ich ja nur mit reingenommen, dass man auch sieht, wie sie geändert werden kann.
Die FONT-Auswahl und Body-Hintergrundfarbe - dem Wusch entsprechend - zu ändern, sollte nicht alsoschwer sein.

Ich schlage vor Du setzt Deinen Code auch hierein, dann hat jeder die freie Auswahl

Gruß Dieter

PS. Werden bei Dir, die Seiten auch so doof angezeigt, sodass die Auswahlbuttons und Text zum Teil garnicht sichtbar sind?
Muss ständig in der Ansicht rumklicken, damit ich alles sehen kann.
Bitte warten ..
Mitglied: LotPings
03.05.2009 um 17:11 Uhr
Zitat von 76109:
Hallo LotPings,

die Fenstergröße habe ich ja nur mit reingenommen, dass > man auch sieht, wie sie geändert werden kann.
Die FONT-Auswahl und Body-Hintergrundfarbe - dem Wusch entsprechend - zu ändern, sollte nicht alsoschwer sein.
Ack
Ich schlage vor Du setzt Deinen Code auch hierein, dann hat jeder die freie Auswahl
Ist ja WIP Work in Progress, wenn ich einen stabilen Zwischenstand ja gerne.

PS. Werden bei Dir, die Seiten auch so doof angezeigt, sodass die Auswahlbuttons und Text zum Teil garnicht sichtbar sind? Muss ständig in der Ansicht rumklicken, damit ich alles
sehen kann.
Ähh, was meinst du jetzt? Die Administrator.de Seite, deinen (mir unbekannten) Editor, oder was?

Gruß
Bitte warten ..
Mitglied: 76109
03.05.2009 um 17:26 Uhr
Zitat von LotPings:
Ähh, was meinst du jetzt? Die Administrator.de Seite, deinen mir (unbekannten) Editor, oder was?

Die Admin-Seiten im IE.

Kriege in der Breite nur ca die 1/2 angezeigt.

Wenn ich dann in der Ansicht auf Schriftgrad mittel - auf dem es eh schon steht - noch mal drauf klicke, dann wird die Seite angepasst. Das muss ich aber nach jeder Aktionen wieder auf's neue machen.

Gruß Dieter
Bitte warten ..
Mitglied: LotPings
04.05.2009 um 10:31 Uhr
Zitat von 76109:

Die Admin-Seiten im IE.

Kriege in der Breite nur ca die 1/2 angezeigt.

Sorry, da kann ich nicht helfen.
Benutze den FireFox auf 1920*1200 mit 130% und sehe alles auf einmal.


Gruß
Lotpings

PS: Der OP rührt sich nicht mehr - irgendwie haben wir wohl üübernommen.
Bitte warten ..
Mitglied: Biber
04.05.2009 um 11:03 Uhr
Moin Lotpings und didi1954,

PS: Der OP rührt sich nicht mehr - irgendwie haben wir wohl übernommen.
Das war mir auch schon seit ein paar Zentimetern dieses kurzweiligen Threads aufgefallen.

Ich denke, der TO hat schon zwischen den Zeilen herausgelesen, dass sein Plan, es mit einfachen Mitteln unixlike (oder meinetwegen ANSI.SYS-like) auf beliebigen Rechnern umsetzen zu können eigentlich nicht geht.

Die Workarounds, die ihr hier produziert, mögen ja funktionieren... aber hey!
Wer möchte schon unbedingt mit einem Gabelstabler sein Frühstücksei köpfen?

Und BTW - wenn nun die früher so vielgenutzte direkte Bildschirmadressierung nun seit gefühlten 10 Jahren tabu ist (weil direkte Ansprache der Hardware nun eigentlich nicht sein kann) und dennoch seit ebenso vielen Jahren keine Lobby für ein "jedes Zeichen auf der Konsole in einer anderen Farbe schreiben können") erkennbar ist...

--> dann sollten wir das als feststehend hinnehmen.
Und die Antwort auf die Frage ist: "Geht nicht".

Grüße
Biber
Bitte warten ..
Mitglied: 76109
04.05.2009 um 11:26 Uhr
Hallo Lotpings,

Zitat von LotPings:
Sorry, da kann ich nicht helfen. Benutze den FireFox auf 1920*1200 mit
Habe nur 1280x1024 auf 19-Zoll-TFT. Egal, vielleicht liegt es auch nur an den Sicherheits-Einstellungen.

PS: Der OP rührt sich nicht mehr
Vielleicht hat er anderweitig ein paar schöne Tage verbracht
Wird sich schon noch melden und wenn nicht, gibt's bestimmt noch andere, die es interessiert.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
04.05.2009 um 11:34 Uhr
Hallo Biber,

Zitat von Biber:
Wer möchte schon unbedingt mit einem Gabelstabler sein > Frühstücksei köpfen?
oder mit einer Schlagbohrmaschine einen Nagel in die Wand schlagen

Immer wieder zum Scherzen aufgelegt.

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(2)

Erfahrungsbericht von ashnod zum Thema Internet ...

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

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...