for ループでは、(フォルダーの) 全体の長さを呼び出すために文字列を引用符で囲む必要がありますが、これは後でスクリプトで問題を引き起こします。引用符を簡単に削除する方法はありますか (エコーで使用される :~1,-1 など)?
@ECHO OFF
set ICOINI=Desktop.ini
for /D /R "%cd%" %%d IN (*) do (call :Write_File "%%~nd")
Pause
goto End_File
:Write_File
set FOLDER=%1
if /I %FOLDER%==Icon goto :EOF
if /I %FOLDER%==Extras goto :EOF
echo %FOLDER:~1,-1%
goto :EOF
:End_File