new to Bricad but this seems to work :
(defun c:DxfToDwg ( / actDoc dxf-folder dxf-list )
(setq actDoc (vla-get-activedocument (vlax-get-acad-object)))
(vl-load-com)
(cond
((not (setq dxf-folder (_getfolder "Select folder with dxf files")))
(princ "\nNo folder selected"))
((not (vl-consp (setq dxf-list (_getfiles dxf-folder "*.dxf"))))
(princ (strcat "\nNo dxf files in folder " dxf-folder)))
(t
(command ".undo" "mark")(setvar "expert" 2)
(foreach dxf dxf-list
(command ".erase" "all" "")
(vla-purgeall actDoc)
(vl-cmdf "_.dxfin" dxf)
(vla-ZoomExtents (vlax-get-acad-object))
(command ".save" (strcat (vl-filename-directory dxf) "\\" (vl-filename-base dxf)))
)
(command ".undo" "back")
)
)
(princ)
)
; generic getfolder routine with possibility to create a new subfolder (_getfolder "select path")
(defun _getfolder ( m / f s) (if (and (setq s (vlax-create-object "Shell.Application"))
(setq f (vlax-invoke s 'browseforfolder 0 m 65536 "")))(setq f (vlax-get-property (vlax-get-property f 'self) 'path))
(setq f nil))(vl-catch-all-apply 'vlax-release-object (list s)) (if f (vl-string-translate "\\" "/" f)))
(defun void (x)
(or (eq x nil) (and (listp x)(not (vl-consp x))) (and (eq 'STR (type x)) (eq "" (vl-string-trim " \t\r\n" x)))))
(defun _getfiles ( fol ext / lst)
(cond
((or (void fol) (not (vl-file-directory-p fol)))
(princ (strcat "\nInvalid folder :" (vl-princ-to-string fol))))
(t
(if (vl-consp (setq lst (vl-directory-files fol ext 1)))
(setq lst (mapcar '(lambda (x)(strcat fol "/" x)) lst))))
)
lst
)