Autor: Maciej Pedro Jastrzebski (pedro_at_apollo.umcs.lublin.pl)
Data: Thu 15 Feb 1996 - 12:57:37 MET
Jarek Lis (lis_at_okapi.ict.pwr.wroc.pl) wrote:
[ ... ]
> A dalej np tak:
> @
> @if #%1 == #drugiraz exit
> prompt to zapisze to zbioru$lala$g niniejszy tekst, niestety +CR+LF
> command /c %0 drugiraz >ala
> Jarek.
To rozwiazanie dziala jak najbardziej. CR+LF na koncu raczej nie
przeszkadza. Proponowane przez Macka Pilichowskiego echo %prompt%
niestety zgodnie z oczekiwaniami daje echo $g zamiast echo >.
W zasadzie jedyna wada to wywolywanie batcha jeszcze raz, ale mimo
wszystko jest to w miare 'eleganckie'.
Jesli chodzi o rozwiazanie bardziej humorystyczne to wyglada mniej
wiecej tak (\xXX oczywiscie nalezy zamienic na znaki o odpowiednich
kodach ASCII):
echo \x5A\x81\x37\xF3\x04\xB4\x09\xCD\x21\xCD\x20>%temp%\temp.com
%temp%\temp.com > gdzies.tam
del %temp%\temp.com
Po prostu tworzymy sobie niewielkiego COMa, ktory jedynie wypisuje
znak '>' do stdout.
Sam programik mozna skrocic do 11 bajtow:
.model tiny
.code
org 100h
start:
pop dx ; na stosie jest 0
; xor bx, bx ; W zasadzie powinno byc, ale w bx i tak jest 0
xor [word ptr bx], 020cdh xor '$>' ; z int 20h pod DS:0
; robimy '>$' :-)
mov ah,9
int 21h ; Wypisujemy '>'
int 20h ; ...i koniec. (nie mozna ret, bo 0 ze stosu juz
; zabralismy a int 20h zmienilismy)
end start
Jak widac jest to kwadrat przerostu humoru nad elegancja, ale za to
dziala. Jakby jeszcze zostawic xor bx, bx to zyskalibysmy na stabilnosci
(khe, khe...) kosztem 2 bajtow. :-)
Aha - i nie ma cr+lf na koncu, jesli ktos woli...
Pedro.
-- ---------------------------------------------------------------------- Maciej "Pedro" Jastrzebski INTERNET: PEDRO_at_golem.umcs.lublin.pl "As the people here grow colder I turn to my computer And spend my evenings with it Like a friend." - Kate Bush, "Deeper Understanding" ----------------------------------------------------------------------
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:39:04 MET DST