Фактическая ошибка — лишний пробел при присвоении в:
Код:

… set FLASH=D: && goto 2
после имени диска и двоеточия. Должно быть так:
Код:

… set FLASH=D:&& goto 2
Вторая ошибка того же типа. Не:
Код:

echo %FLASH% > %FLASH%\C#\tmp.txt
а:
Код:

echo %FLASH%> %FLASH%\C#\tmp.txt
Для ясности можно перенести перенаправление вывода перед командой:
Код:

>%FLASH%\C#\tmp.txt echo %FLASH%
А проще заменить весь перебор на:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
echo Ищем исходники на флешке
echo Критерий: наличие \C#\STDU FLASH\ на диске (D:-J:)
echo.
set /a bFound = 0
for %%i in (D E F G H I J) do (
if exist "%%i:\C#\STDU FLASH\." (
echo Папка c исходниками найдена на [%%i:].
>"%%i:\C#\tmp.txt" echo %%i:
set /a bFound = 1
)
)
if %bFound% equ 0 echo Папка c исходниками не найдена.
endlocal
exit /b 0