我有一个批处理脚本,在其中循环遍历文件夹中的所有文件名,然后调用命令以从filename中删除扩展名。我想在每次迭代时将文件名(不带扩展名)存储在一个名为供以后重用的变量中。result
该RemoveExtension功能工作正常。但是我无法检索结果并将其存储在_result变量中。当我打印它时,它总是空的。谢谢你的帮助!
@echo OFF
SETLOCAL EnableDelayedExpansion
set "_result="
for /f "delims=" %%i in ('dir "%~1\*.txt" /b') DO (
   echo.filepath: "%~1\%%i"
   call :RemoveExtension "%%i"
   echo._result: "%_result%"  // The "_result" variable is always EMPTY ""
)
goto :eof
:RemoveExtension
SETLOCAL
   REM echo "%~1"
   set "filename=%~1"
   :loop
      if "%filename:~-1%" NEQ "." (
         set "filename=%filename:~0,-1%
         goto :loop
      ) 
   set "filename=%filename:~0,-1%"
   echo "%filename%"
ENDLOCAL & set "_result=%filename%"
goto :eof