Variable HOMEPATH an CMD übergeben
Guten Tach,
ich würde gern in vb6 eine Textdatei per cmd in das verzeichnis %HOMEDRIVE%%HOMEPATH% schreiben lassen. (Das kann man ja einfach so text > "%HOMEDRIVE%%HOMEPATH%\text.txt" in cmd eingeben.) Aber irgendwie nicht aus vb6??
Also: Shell "cmd.exe /k " & " Text" & " > " & "%HOMEDRIVE%%HOMEPATH%\Text.txt"
funktioniert nicht... variablen kann man scheinbar auch nicht übergeben und selbst:
Shell "cmd.exe /k " & " Text" & " > " & "C:\Dokumente und Einstellungen\User\Text.txt"
geht nicht.
Kann mir jemand sagen was ich falsch mache?
ich würde gern in vb6 eine Textdatei per cmd in das verzeichnis %HOMEDRIVE%%HOMEPATH% schreiben lassen. (Das kann man ja einfach so text > "%HOMEDRIVE%%HOMEPATH%\text.txt" in cmd eingeben.) Aber irgendwie nicht aus vb6??
Also: Shell "cmd.exe /k " & " Text" & " > " & "%HOMEDRIVE%%HOMEPATH%\Text.txt"
funktioniert nicht... variablen kann man scheinbar auch nicht übergeben und selbst:
Shell "cmd.exe /k " & " Text" & " > " & "C:\Dokumente und Einstellungen\User\Text.txt"
geht nicht.
Kann mir jemand sagen was ich falsch mache?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59675
Url: https://administrator.de/contentid/59675
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
7 Kommentare
Neuester Kommentar
Ja, kann ich.
1. Fehler:
Schon Dein Beispiel text > "%HOMEDRIVE%%HOMEPATH%\text.txt" geht nicht. Es muß echo text > "%HOMEDRIVE%%HOMEPATH%\text.txt" heißen.
2. Fehler (Fehler 1 habe ich für Dein Beispiel schon korrigiert):
Shell "cmd.exe /k echo" & " Text" & " > " & "%HOMEDRIVE%%HOMEPATH%\Text.txt" ergibt als Befehlszeile: echo Text > %HOMEDRIVE%%HOMEPATH%\Text.txt
Wenn Du das mit Deinem Beispiel vergleichst, wirst Du feststellen, daß es nicht daselbe ist. Es fehlen nämlich die Anführungszeichen um %Homedrive... die man braucht, weil in HomePath nämlich Leerzeichen drinvorkommen.
Also:
Shell "cmd.exe /k echo" & " Text" & " > " & """%HOMEDRIVE%%HOMEPATH%\Text.txt"""
Und Variablen tun, wenn man es richtig macht.
3. Anmerkung:
Wieso cmd /k?
mit cmd /k bleibt die Kommandozeile offen nach Ausführung des Befehls. Ist das so gewünscht? mit cmd /c wird sie nach dem echo Befehl geschlossen.
1. Fehler:
Schon Dein Beispiel text > "%HOMEDRIVE%%HOMEPATH%\text.txt" geht nicht. Es muß echo text > "%HOMEDRIVE%%HOMEPATH%\text.txt" heißen.
2. Fehler (Fehler 1 habe ich für Dein Beispiel schon korrigiert):
Shell "cmd.exe /k echo" & " Text" & " > " & "%HOMEDRIVE%%HOMEPATH%\Text.txt" ergibt als Befehlszeile: echo Text > %HOMEDRIVE%%HOMEPATH%\Text.txt
Wenn Du das mit Deinem Beispiel vergleichst, wirst Du feststellen, daß es nicht daselbe ist. Es fehlen nämlich die Anführungszeichen um %Homedrive... die man braucht, weil in HomePath nämlich Leerzeichen drinvorkommen.
Also:
Shell "cmd.exe /k echo" & " Text" & " > " & """%HOMEDRIVE%%HOMEPATH%\Text.txt"""
Und Variablen tun, wenn man es richtig macht.
3. Anmerkung:
Wieso cmd /k?
mit cmd /k bleibt die Kommandozeile offen nach Ausführung des Befehls. Ist das so gewünscht? mit cmd /c wird sie nach dem echo Befehl geschlossen.
Moin DonSimeo,
ich weiß nicht, ob es Dich interessiert, aber Du kannst auch aus VB6 (und sogar bei den Leicht-Modellen wie VBSkript) direkt auf die Umgebungsvariablen (neudeutsch: Environment) zugreifen.
Der Umweg über das Schreiben/Lesen einer EnvironmentStrings in eine Textdatei erscheint mir ein wenig umwegig.
Gruss
Biber
ich weiß nicht, ob es Dich interessiert, aber Du kannst auch aus VB6 (und sogar bei den Leicht-Modellen wie VBSkript) direkt auf die Umgebungsvariablen (neudeutsch: Environment) zugreifen.
Der Umweg über das Schreiben/Lesen einer EnvironmentStrings in eine Textdatei erscheint mir ein wenig umwegig.
Gruss
Biber
Nein, DonSimeo,
Ich hatte mich an Deiner Überschrift orientiert und war davon ausgegangen, dass entweder
Ihr seid jetzt den zweiten Weg gegangen. Ich meinte nur, der erste wäre auch möglich.
An irgendein "Net View" habe ich nicht im Entferntesten gedacht.
Also: alles ist gut... die Lösung funktioniert und ein grüner Haken ist auch dran...
Dann schönen Urlaub
Biber
Meinst Du mit Umgebungsvariablen Funktionen wie "Net View"?
So etwas meinte ich nicht mit Umgebungsvariablen...Ich hatte mich an Deiner Überschrift orientiert und war davon ausgegangen, dass entweder
- VBSkript die Umgebungsvariablen %HOMEDRIVE% / %HOMEPATH% auflösen muss oder
- CMD.exe die beiden Strings "%HOMEDRIVE%" und "HOMEPATH%" in genau dieser Form zum Interpretieren in die Hand (oder in was auch immer) gedrückt bekommt.
Ihr seid jetzt den zweiten Weg gegangen. Ich meinte nur, der erste wäre auch möglich.
An irgendein "Net View" habe ich nicht im Entferntesten gedacht.
Also: alles ist gut... die Lösung funktioniert und ein grüner Haken ist auch dran...
Dann schönen Urlaub
Biber
Hallo DonSimeo!
Für nach dem Urlaub :
Falls Du die Zeilen einzeln brauchst, könntest Du so weiter vorgehen:
Die MsgBox-Zeile steht stellvertretend für Deine eigentliche Verarbeitung der einzelnen "net view"-Zeilen.
Grüße
bastla
Für nach dem Urlaub :
Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("net view")
Set objStdOut = objWshScriptExec.StdOut
strOutput = objStdOut.ReadAll
Text1.Text = strOutput
arLines = Split(strOutPut, vbCrLf)
For i = 0 To UBound(arLines)
MsgBox arLines(i)
Next
Grüße
bastla