Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Tasklist in CSV-Datei schreiben

  Alt 22. Jul 2015, 13:16
/C für "Hey, cmd.exe, führe das aus, was ich dir als Parameter gebe und beende dich dann"

Es fehlte wohl weiterhin noch /A für "Ausgabe an Standard-Pipe im ANSI-Format"

Folgendes Programm

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, WinApi.Windows, WinApi.ShellApi;

begin
  try
   if ShellExecute(
      0,
      nil,
      'cmd',
      '/A /c tasklist /s 192.168.178.10 /u domain\administrator /p password /fi "Username eq User1" /fo csv > x:\test.txt',
      nil,
      SW_SHOWNORMAL
   ) < 32 then RaiseLastOSError();

  except
   on E: Exception do
     Writeln(E.ClassName, ': ', E.Message);
  end;

  readln;
end.
erzeugt bei mir eine Datei "x:\test.txt" mit dem Inhalt
Code:
INFORMATION: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt.
Führe ich das gleiche in der Konsole aus bekomme ich allerdings noch etwas mehr:

Code:
WARNUNG: Benutzeranmeldeinformationen können für lokale Verbindungen nicht verwe
ndet werden.
INFORMATION: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt.
Wenn du den "stderr"-Ausgabepfad (Fehler und Warnungen) auch in der Datei haben willst musst du die eine Zeile noch so anpassen:

Code:
'/A /c tasklist /s 192.168.178.10 /u domain\administrator /p password /fi "Username eq User1" /fo csv 1> x:\log.txt 2>&1'


PS: Aber ich glaube das Programm erstmal auf die Festplatte schreiben lassen, dann warten bis es fertig ist um dann diese Datei wieder einzulesen, das geht sicherlich besser. Das ging doch irgendwie, dass man z.B. "tasklist" startet und seinen stdOut direkt im Delphi-Programm abgreift?
  Mit Zitat antworten Zitat