Com a ajuda do @PimpJuiceIT Acabei com algo assim:
@ECHO ON
SET SourceDir=drive:\path\to\source
SET DestDir=drive:\path\to\destination
SET PathToCSV=drive:\path\to\list.csv
for /f "delims=*" %%i in ("%PathToCSV%") do (xcopy "%SourceDir%\%%~i" "%DestDir%\%%~i\" /S /E /I)
pause
CD /D "C:\Program Files-Zip"
7z.exe a "%DestDir%\zipfile.zip" "%DestDir%"
pause
Esta provavelmente não é a melhor prática em relação ao espaço em disco, por isso deve ser usado com o CARE em grandes blocos de dados.