kaioo2509
Goto Top

Shell Command Auslesen

Problem:

Eine von mir gekaufte Software [A] (Szenerien Generator) startet eine seperat gekaufte Software [B] (Visualisierungs-Engine) via Dos Shell (Hardcoded in Software[A]) durch Aufruf der *.exe mit den benötigten Szenario-Parametern und schließt die Shell anschließend automatisch wieder (weder das Betrachten des Aufrufs noch das Drücken des Pause-Taste ist möglich).

Nun möchte ich jedoch Software[B] händisch mit selbst gewählten Parametern zur Visualisierung starten, ohne die Verwendung von Software [A], es gibt jedoch weder eine Schnittstellenbeschreibung noch eine /help oder /? funktion in der *.exe Datei

Frage: Gibt es eine Möglichkeit, den in der DOS-Shell aufgerufenen Befehl von Software[A] extern zu protokollieren bzw. auszulesen ?


Vielen Dank,
Gruß,
KaiOo

Content-ID: 98261

Url: https://administrator.de/forum/shell-command-auslesen-98261.html

Ausgedruckt am: 20.04.2025 um 16:04 Uhr

predatorjaeger
predatorjaeger 01.10.2008 um 18:05:25 Uhr
Goto Top
das einzige was mir jetzt auf anhieb einfallen würde, wäre die ausgabe direkt zu loggen, bsp: prog a >> log.txt --> log.txt enthält dann die ausgabe v. prog a
vlt hilft es dir was
60730
60730 01.10.2008 um 18:19:28 Uhr
Goto Top
Servus,

machs mal so herum:

  • kopiere Notepad.exe dorthin - wo Programm b liegt.
  • gib Programm B den Namen "ProgramB.exe"
  • gib der Notepad kopie den "richtigen Namen" von ProgrammB
  • starte Programm A
  • "merke dir die Fehlermeldung, die im Notepad Popupfenster steht

Gruß
bastla
bastla 01.10.2008 um 23:50:29 Uhr
Goto Top
Hallo Kaioo2509!

Falls Software [B] lange genug läuft, dass Du zwischenzeitlich den folgenden Batch ausführen kannst, sollte die beim Aufruf verwendete Kommandozeile angezeigt werden:
@echo off & setlocal
set "Prog=calc.exe"  

rem Demo
start "Demo" "%Systemroot%\System32\calc" /mit /diesen /sinnlosen /Parametern  
rem

set G=%temp%\GetCommandline.vbs
>%G%  echo Set WMI=GetObject("winmgmts:\\.\root\CIMV2"):Set Items= _  
>>%G% echo WMI.ExecQuery("SELECT * FROM Win32_Process WHERE name='%Prog%'")  
>>%G% echo For Each Item In Items: WScript.Echo Item.CommandLine:Next

cscript //nologo %G%
pause
Anstelle von "calc.exe" ist in Zeile 2 natürlich der Name (ohne Pfadangabe) der "Software [B].exe-Datei" einzutragen, und die Zeilen 4 bis 6 dienen nur als Demo unter Verwendung des Windows-Rechners (der die angegebenen Parameter nicht weiter übel nimmt face-wink) und können ersatzlos gestrichen werden ...

Grüße
bastla