My idea got from creator by JefferyPSanders
Here my code
; Create program in program
(defun c:test (/ tex file f)
(prompt "(C)ircle,(L)ine,(R)ectangular,(E)llipse")
(setq tex (getstring "\nSelect a program[C/L/R/E]<C>: "))
(if
(= tex "")
(setq tex "c")
) ; if
(cond
((= tex "c")(cir))
((= tex "l")(lin))
((= tex "r")(rec))
((= tex "e")(ell))
) ; cond
(startapp "notepad" file)
(princ)
) ; defun
(defun cir ()
(vl-filename-mktemp "cir" "c:\\Autolisp" ".lsp")
(setq file "c:/Autolisp/cir.lsp")
(setq f (open file "w"))
(princ "\n(defun c:cir (/ loc rad)" f)
(princ "\n(setq loc '(0 0 0))" f)
(princ "\n(setq rad 5)" f)
(princ "\n(command \"_circle\" loc rad \"\")" f)
(princ "\n(princ)" f)
(princ "\n)" f)
(close f)
) ; defun
(defun lin ()
(vl-filename-mktemp "lin" "c:\\Autolisp" ".lsp")
(setq file "c/Autolisp/lin.lsp")
(setq f (open file "w"))
(princ "\n(defun c:lin (/ pt1 pt2)" f)
(princ "\n(setq pt1 '(0 0 0))" f)
(princ "\n(setq pt2 '(10 5 0)" f)
(princ "\n(command \"_line\" pt1 pt2 \"\")" f)
(princ "\n(princ)" f)
(princ "\n)" f)
(close f)
) ; defun
(defun rec ()
(vl-filename-mktemp "rec" "c:\\Autolisp" ".lsp")
(setq file "c/Autolisp/rec.lsp")
(setq f (open file "w"))
(princ "\n(defun c:rec (/ pt1 pt2)" f)
(princ "\n(setq pt1 '(0 0 0))" f)
(princ "\n(setq pt2 '(10 5 0)" f)
(princ "\n(command \"_rectang\" pt1 pt2 \"\")" f)
(princ "\n(princ)" f)
(princ "\n)" f)
(close f)
) ; defun
(defun ell ()
(vl-filename-mktemp "ell" "c:\\Autolisp" ".lsp")
(setq file "c/Autolisp/ell.lsp")
(setq f (open file "w"))
(princ "\n(defun c:ell (/ pt1 pt2)" f)
(princ "\n(setq pt1 '(0 0 0))" f)
(princ "\n(setq pt2 '(10 5 0))" f)
(princ "\n(command \"_ellipse\" pt1 pt2 \"\")" f)
(princ "\n(princ)" f)
(princ "\n)" f)
(close f)
) ; defun