Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CMD.exe mehrere Befehle in eine Console? (https://www.delphipraxis.net/41636-cmd-exe-mehrere-befehle-eine-console.html)

Master_BB 6. Mär 2005 11:22


CMD.exe mehrere Befehle in eine Console?
 
Hya,
wie stelle ich es an das ich an ein CMD fenster mehrere Befehle übergeben kann nacheinander?
sprich wie diese befehlsabfolge
netsh
interface ip set file c:\blabla.txt
interface ip show config
interface ip set file close

diese müßten sukzessiv in die CMD rein. mit shellexecute öffnert er logischer weise aber immer
ein neues CMD fenster wodurch das loggn mit der datei nicht geht.

Greetz
Master_BB

jfheins 6. Mär 2005 11:26

Re: CMD.exe mehrere Befehle in eine Console?
 
So:
Code:
cmd.exe /c echo Hallo, seien sie froh, dass Sie das hier sehen, && echo denn dieser Befehl haette auch ihre Festplatte formatieren koennen ... && pause>nul && echo ... aber keine Angst, der kommt gleich ... && echo. && pause
gibt aus:
Code:
Hallo, seien sie froh, dass Sie das hier sehen,
denn dieser Befehl haette auch ihre Festplatte formatieren koennen ...
... aber keine Angst, der kommt gleich ...

Drücken Sie eine beliebige Taste . . .

scp 6. Mär 2005 11:27

Re: CMD.exe mehrere Befehle in eine Console?
 
Du kannst wie gewohnt mit ShellExecute usw. arbeiten, wenn du vor dem ersten Befehl
Delphi-Quellcode:
AllocConsole;
und nach dem letzten Befehl
Delphi-Quellcode:
FreeConsole;
in den Quelltext einfügst.

Master_BB 6. Mär 2005 13:49

Re: CMD.exe mehrere Befehle in eine Console?
 
hm thx scp das hilft mir auf alle fälle schon mal weiter
ABER
es klappt noch nicht ganz.
ich muss befehle in die cmd senden
mit shell execute rufe ich ja immer sozusagen nur ein programm auf und übermittle parameter und aus ist.
ich muss aber im programm bleiben und nach dem ersten noch mehr befehle aufrufen.
in der cmd sähen die befehle von oben so aus
c:\
eingabe netsh
netsh\
eingabe interface ip set file ..
netsh\interface\ip\
eingabe blalbsdfsd

so um das hinzubekommen muss ich also bei der offenen console befehle übergeben.
gibts da was?

Greetz

scp 6. Mär 2005 22:00

Re: CMD.exe mehrere Befehle in eine Console?
 
Wenn du auf die einzelnen Befehle warten willst, kannst du MSDN-Library durchsuchenCreateProcess in Verbindung mit MSDN-Library durchsuchenWaitForSingleObject verwenden.
netsh-Befehle kannst du über eine Skriptdatei übergeben.
Code:
netsh exec <Skriptdatei>
PS: Im übrigen sollte man besser auf Befehle der Windows API zurückgreifen, anstatt das über ein Konsolen-Programm zu erledigen. Statt "cd" kannst du z.B. SetCurrentDirectory() verwenden.

xineohp 6. Mär 2005 22:33

Re: CMD.exe mehrere Befehle in eine Console?
 
@scp: Mir ist keine Methode bekannt wie man per Win-API die IP-Settings ändern kann (ok, das das muss nichts heisen, aber wenn man hier sucht landet man auch wieder bei netsh) Im übrigen finde ich das auch gar nicht so schlecht, vor allem weil es ein sehr mächtiges tool ist.

@Master_BB: du könntest das problem auch umgehen, indem du den netsh-Befehl in eine Zeile packst, z.B:
Code:
netsh interface ip show config >"C:\myfile.txt"
wobei ich allerdings den dump-Befehl vorziehen würde:
Code:
netsh interface ip dump >"C:\myfile.txt"

retnyg 6. Mär 2005 22:56

Re: CMD.exe mehrere Befehle in eine Console?
 
oder einfach eine batch-datei erstellen und dann rennen lassen....

Master_BB 7. Mär 2005 07:10

Re: CMD.exe mehrere Befehle in eine Console?
 
vielen DANK für eure ideen.
ich werd mal probieren was am besten klappt.
batch datei kam mir auch schon in den sinn aber ich wollt
erstmal kukn obs auch so geht.

jfheins 7. Mär 2005 18:11

Re: CMD.exe mehrere Befehle in eine Console?
 
Warum geht eigendlich meine Lösung mit den && nicht ??? :gruebel:

xineohp 7. Mär 2005 20:24

Re: CMD.exe mehrere Befehle in eine Console?
 
weil netsh irgendwie seinen eigenen Kontext (oder wie auch immer man das nennen soll) aufruft, probiers einfach mal aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz