Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 10570 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 ..
Ähnliche Inhalte
PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Batch & Shell
gelöst Powershell invoke Command Variablen übergeben (4)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Neue Wissensbeiträge
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (13)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...

Switche und Hubs
gelöst VLAN für Gäste WLAN einrichten über FritzBox und Switch (10)

Frage von Elo-14 zum Thema Switche und Hubs ...