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
GELÖST

Variable HOMEPATH an CMD übergeben

Frage Entwicklung VB for Applications

Mitglied: DonSimeo

DonSimeo (Level 1) - Jetzt verbinden

24.05.2007, aktualisiert 26.05.2007, 10228 Aufrufe, 7 Kommentare

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?
Mitglied: AndreasHoster
24.05.2007 um 09:13 Uhr
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.
Bitte warten ..
Mitglied: DonSimeo
24.05.2007 um 09:42 Uhr
juchuu,

es funktioniert!! Ach herrlich das es Menschen gibt die wissen und helfen, wenn man selbst nicht weiter kommt. Danke.

Das echo habe ich weggelassen weil mir die CMD net view ausführt (tschuldigung). /k dachte ich muss rein um die cmd mit Parametern zu starten, und geschlossen habe ich sie am Ende der Zeile mit ,vbHide da sieht man sie nicht einmal (oder bleibt sie dann im Hintergrund geöffnet?).

Wünsche einen schönen Tag, Gruß Simi.
Bitte warten ..
Mitglied: DonSimeo
24.05.2007 um 10:24 Uhr
Oh,
ich sehe gerade, bei /k und vbHide (heißt ja auch nur versteckt) wird der Prozess nicht beendet.
Bitte warten ..
Mitglied: Biber
24.05.2007 um 21:58 Uhr
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
Bitte warten ..
Mitglied: DonSimeo
25.05.2007 um 14:54 Uhr
Meinst Du mit Umgebungsvariablen Funktionen wie "Net View"?
Denn darum ging es mir ja...

Wenn ich Net View direkt abgreifen und in eine textbox schreiben könnte, wäre
das natürlich schon praktisch! Momentan schreibe ich's per cmd in eine .txt und lese
diese dann aus...

Kannst mir gerne einen Skript-Ansatz dafür geben, aber jetzt fahre ich ersteinmal in den Urlaub!

Schöne GRüße, Simi.
Bitte warten ..
Mitglied: Biber
25.05.2007 um 18:33 Uhr
Nein, DonSimeo,
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
Bitte warten ..
Mitglied: bastla
26.05.2007 um 12:56 Uhr
Hallo DonSimeo!

Für nach dem Urlaub :
01.
Set objShell = CreateObject("WScript.Shell") 
02.
Set objWshScriptExec = objShell.Exec("net view") 
03.
Set objStdOut = objWshScriptExec.StdOut 
04.
strOutput = objStdOut.ReadAll 
05.
Text1.Text = strOutput
Falls Du die Zeilen einzeln brauchst, könntest Du so weiter vorgehen:
01.
arLines = Split(strOutPut, vbCrLf) 
02.
For i = 0 To UBound(arLines) 
03.
    MsgBox arLines(i) 
04.
Next
Die MsgBox-Zeile steht stellvertretend für Deine eigentliche Verarbeitung der einzelnen "net view"-Zeilen.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
CMD cURL Access Token parsen (2)

Frage von maddig zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...