Para argumentos e para variáveis, há o modificador ~a
retornando os atributos.
Consulte o link
Se os atributos contiverem a letra d
, é um diretório.
@Echo off
Echo %~a1|findstr "d" >nul 2>&1 && (
echo %1 is a directory
) || (
echo %1 is a file
)