Maybe something like this?
(defun LM:MoveFile ( file dest / fso result ) (vl-load-com)
(if
(and
(setq file (findfile file))
(setq dest (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" dest)) "\\"))
(or (vl-file-directory-p dest) (vl-mkdir dest))
(setq fso (vlax-create-object "Scripting.FileSystemObject"))
)
(setq result (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list fso 'MoveFile file dest)))))
)
(if fso (vlax-release-object fso))
result
)
e.g.
(LM:MoveFile "C:\\MyFile.txt" "C:\\MyFolder\\")
MyFolder is created if non-existent.