Конкатенация работает!Но ваше эхо не проходит.
Поскольку вы находитесь в командном блоке (скобки), все процентные переменные раскрываются до того, как блок будет выполнен, поэтому вывод echo "%myvar%"
является содержимым myvar перед вводом цикла FOR.
Но вы уже знаете правильный путь, используя отложенное расширение (с !
)
Таким образом, ваш код должен выглядеть как
SETLOCAL EnableDelayedExpansion
for /f "delims=" %%P in ('dir /b *.pdf') do (
SET "sPDFName=%%~nxP"
echo "!sPDFName:~0,1!"
IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!")
IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!")
SET tempStr=GEN !sPDFName!
SET myvar=!myvar! %%P
echo "!myvar!"
echo "!tempStr!"
::echo "!sPDFName!"
pause
for /f "delims=" %%H in ('dir /b *.html') do (
IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H
)
)