I've found a half dozen or so variants of this question online and none of them actually reach a conclusion, successful or otherwise.

I have a few thousand files that I need to rename and update the drawing number on in a title block. Additionally, I need to update continuations in said DWGs, but that will be a separate issue. I've built a crude routine to rename the block attribute based on the file name, but what I'm having difficulty with is the file name itself. I have a CSV file with all the old and new files, but I'm having trouble with the command to execute the rename.

The CSV is formated:
FileOld,FileNew
C:/Directory/FileOld.dwg,C:/Directory/FileNew.dwg
etc...

The formatting of FileOld is not consistent, it's made up of 3–6 segments with most segments having varying lengths.
The formatting of FileNew is consistent, being made of 5 segments with each segment having a specific length and leading 0s if necessary.
FileNew directly correlates with FileOld.

My thought is rather than forcing it through VL-FILE-RENAME or a BAT file, I could build on VL-FILE-RENAME and call the arguments from the CSV, but currently I'm being told I'm lacking in arguments.

I'm currently using function to parse the list from the CSV. This is what I have otherwise.

Code:
(defun C:CSV2FILE (/)
	(setq filelist (open "C:/LISP Directory/filelist.csv" "r"))
	(setq filedata (read-line filelist))
	(setq filedata (read-line filelist))
	(while (/= filedata "EOF")
		(setq filedata (LM:str->lst filedata ","))
		(vl-file-rename filedata)
		(setq filedata (read-line filelist))
	)
    (close filelist)
)