[Pascal/Assembler] Sterowanie MS-DOSem przez program

0

Program ma otwierać MS-DOSa i automatycznie wpisać komendę, a potem 'exit' i "nacisnąć" enter. Da się zrobić coś takiego?

0

Co to ma wspólnego z asemblerem? CreateProcess z command.com, uchwyty do stdin i stdout. Zapisujesz polecenia na stdin, wczytujesz wyniki z stdout. Takie trudne? Hmm... chyba, że w rzeczywistym dosie chcesz to uzyskać... wtedy to programy TSR.

0

nie no, wszystko fajnie...tylko że nic z tego nie kumam. możesz troszkę zwięźlej?

0

tworzysz plik np. c:\commands.txt:

dir /w
copy a.txt b.txt
rem ... itd
exit
rem na końcu musi być pusta linia

i wywołujesz sobie zwyczajnie program:
command.com < c:\commands.txt
jak wywołać program z podanymi argumentami, to już zależy, czy siedzisz w Pascalu czy Delphi. poszukaj o Exec, ShellExecute itp

taki sposób uruchamia kopię interpretera, a więc ma ograniczenia, np nie da się w ten sposób zmodyfikować zmiennych środowiskowych.

btw: ja też nie mam pojęcia, jaki to ma związek z asemblerem...

0

wystarczy
command.com /C "copy a.txt b.txt"

0

Ranides & Adamo, ale to już nie jest programowanie :P

0

exec('command.com', '/C whatever');

i już jest programowanie pełną parą :D
nie, no ale skoro program pozwala na zrobienie czegoś za pomocą uruchomienia z odpowiednim przełącznikiem to chyba lepiej to wykorzystać niż zrobić program który po kryjomu uruchomi program i kliknie gdzie trzeba

0

@deus:
ale to jest prawie jak programowanie ;P

@Adamo:
to może jeszcze rozwinę twój sposób o jedną rzecz, mianowicie twoją metodą również idzie wywołać kilka instrukcji naraz (jakby ktoś był ciekawy, a nie wiedział):

command.com /C "polecenie & polecenie & polecenie & itd"

np (działa tak samo, jak przykładowy plik commands.txt wyżej podany:

command.com /C "dir /w & copy a.txt b.txt & rem ... itd"

1 użytkowników online, w tym zalogowanych: 0, gości: 1