Re: Problemik z batchem

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