Probleme mit der Syntax des Shell Befehles

17/12/2008 - 22:50 von Michael Grober | Report spam
Hallo an alle

Ich hoffe ihr könnt mir helfen.
Ich habe in Visual Basic 2008 Express Edition ein Syntaxproblem.
Ich will mit dem Shell Befehl ein Dos Programm aufrufen
Meine Zeile dafür lautet (als Click Ereignis eines Buttons)

Shell("C:\WOL\psshutdown \\Rechner2 -u Administrator -p test -d")

Erklàrung: psshutdown ist das Programm; Administrator der Benutzer und test
ist das Passwort
Das funktioniert auch wunderbar

Auf einem zweiten Button liegt der Befehl:

Shell("""C:\WOL\psshutdown \\Rechner3 -u ""Peter Neuer"" -p # -d""")

Hier ist der Benutzer Peter Neuer und das Passwort ist #

Beim Debuggen wird hier die Meldung:
Eine Ausnahme (erste Chance) des Typs "System.IO.FileNotFoundException" ist
in Microsoft.VisualBasic.dll aufgetreten.
angezeigt. Bei anderer Verteilung der Anführungszeichen erhalte ich
Das Problem sind die korrekte Anzahl und Stelle der Anführungszeichen (weil
halt der Benutzername ein Leerzeichen enthàlt!)

Der Befehl :
C:\WOL\psshutdown \\Rechner3 -u "Peter Neuer" -p # -d
unter der Eingabeaufforderung funktioniert korrekt.

Aber wie müssen die Anführungszeichen richtig gesetzt werden ????

Danke im Voraus
Michael
 

Lesen sie die antworten

#1 Thomas Grothum
22/12/2008 - 18:23 | Warnen spam
Hallo Michael!

Vorweg möchte ich sagen, dass ich hier mit einer VB2005 arbeite. Das von dir
beschriebene Problem sollte aber davon unabhàngig sein.

Versuche bitte mal folgendes Kommando: Shell("C:\WOL\psshutdown
\\Rechner3 -u ""Peter Neuer"" -p # -d")
Lasse also bitte zwei Anführungszeichen am Anfang und am Ende weg.

Nun zur Begründung:
Das Kommando Shell("""C:\WOL\psshutdown \\Rechner3 -u ""Peter Neuer"" -p
# -d""") gibt folgende Zeichenkette zurück: "C:\WOL\psshutdown
\\Rechner3 -u ""Peter Neuer"" -p # -d"
Damit kann die DOS-Umgebung nichts anfangen, da die komplette Zeichenkette
in Anführungszeichen steht.
Wenn Du am Anfang und am Ende zwei Anführungszeichen weg làsst, dann
übergibt das Kommando die Anführungszeichen nicht. Dann sollte es
funktionieren.

Ich hoffe, dass ich dir an dieser Stelle helfen konnte. Ich wünsche dir ein
frohes Weihnachtsfest und einen guten Rutsch!

Über ein Feedback deines Problems würde ich mich freuen.

MfG

Thomas


"Michael Grober" schrieb im Newsbeitrag
news:
Hallo an alle

Ich hoffe ihr könnt mir helfen.
Ich habe in Visual Basic 2008 Express Edition ein Syntaxproblem.
Ich will mit dem Shell Befehl ein Dos Programm aufrufen
Meine Zeile dafür lautet (als Click Ereignis eines Buttons)

Shell("C:\WOL\psshutdown \\Rechner2 -u Administrator -p test -d")

Erklàrung: psshutdown ist das Programm; Administrator der Benutzer und
test ist das Passwort
Das funktioniert auch wunderbar

Auf einem zweiten Button liegt der Befehl:

Shell("""C:\WOL\psshutdown \\Rechner3 -u ""Peter Neuer"" -p # -d""")

Hier ist der Benutzer Peter Neuer und das Passwort ist #

Beim Debuggen wird hier die Meldung:
Eine Ausnahme (erste Chance) des Typs "System.IO.FileNotFoundException"
ist in Microsoft.VisualBasic.dll aufgetreten.
angezeigt. Bei anderer Verteilung der Anführungszeichen erhalte ich
Das Problem sind die korrekte Anzahl und Stelle der Anführungszeichen
(weil halt der Benutzername ein Leerzeichen enthàlt!)

Der Befehl :
C:\WOL\psshutdown \\Rechner3 -u "Peter Neuer" -p # -d
unter der Eingabeaufforderung funktioniert korrekt.

Aber wie müssen die Anführungszeichen richtig gesetzt werden ????

Danke im Voraus
Michael



Ähnliche fragen