フォルダ内のすべてのファイル名をループしてから、ファイル名から拡張子を削除するコマンドを呼び出すバッチスクリプトがあります。後で再利用できるように、すべての反復でファイル名(拡張子なし)を名前付きの変数に保存したいと思います。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