- Offizieller Beitrag
Also ich krieg gerade noch mehr graue Haare, als ich eh schon habe.
Ich möchte das Ergebnis eines Befehls aus der Console in eine Datei umleiten.
Schreibe ich den Namen der Zieldatei als String in den Befehlsaufruf, funktioniert das auch.
Ist die Zieldatei aber in einer Variablen schlägt der Befehlsaufruf fehl, obwohl eine Ausgabe des zusammengesetzten Befehls zeigt, dass dieser korrekt ist.
; Funktioniert nicht:
$file = 'D:\netadapter.cfg'
$cmd = 'netsh interface ip show config >' & $file
ConsoleWrite('$cmd = ' & $cmd & @CR) ; Befehl ist OK
Run($cmd, @SystemDir, @SW_HIDE)
; Datei wird nicht erstellt
;
;
; ABER so funktioniert es:
$cmd = 'netsh interface ip show config >D:\netadapter.cfg'
Run($cmd, @SystemDir, @SW_HIDE)
; Datei wird erstellt
Wo ist jetzt der Fehler?
EDIT:
Ich hatte mir jetzt folgende Notlösung gebaut:
[autoit]$file = "D:\netadapter.cfg"
$cmd = 'netsh interface ip show config'
$foo = Run($cmd, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$fh = FileOpen($file, 1)
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
FileWriteLine($fh, $line)
Wend
Der Nachteil: Die Ausgabe ist nicht konform zur Monitorausgabe und der mit Umleitung erzeugten Datei
Konfiguration der Schnittstelle ""LAN-Verbindung 3""
DHCP aktiviert: Ja
Schnittstellenmetrik: 0
Durch DHCP konfigurierte DNS-Server:
Keine [gehört ans Ende der vorige Zeile]
Durch DHCP konfigurierte WINS-Server:
Keine [gehört ans Ende der vorige Zeile]
Mit welchem Suffix registrieren: Nur prim„res