Você pode fazer 3), mas sugiro adicionar a hora atual também:
echo Timestamp = %date:~6,4%-%date:~3,2%-%date:~0,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
Isso produzirá, por exemplo,
Timestamp = 2018-03-13-17-18-38
Assim, seu arquivo em lote ficaria assim:
echo ON
Title Move files Routine
setlocal enabledelayedexpansion
pushd D:\test1\source\
for /f "tokens=*" %%1 in ('dir /a-d /b D:\test1\source\*.pdf') do (
set filename=%%1&set dirname=!filename:~0,6!
if not exist D:\test1\source\!dirname! (md D:\test1\source\!dirname!)
move %%1 D:\test1\source\!dirname!\%%1--%date:~6,4%-%date:~3,2%-%date:~0,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%.pdf
)
PAUSE