Comment puis-je retourner une valeur à partir d'une fonction dans un fichier batch?

J'ai le fichier de commandes suivant

@echo off
setlocal EnableDelayedExpansion
for /f "delims==" %%J in (File_List.txt) do (
call :setDate %%J MYD
echo/Date is: %MYD%
)
endlocal &goto :eof

:setDate
SETLOCAL ENABLEEXTENSIONS
echo %1
echo %~2
set NAME=%1
set NAME=%NAME:~-11%
echo %NAME%
echo %~2
endlocal&set %2=%NAME%&goto :eof

mais avec File_List.txt contenant
file2012-05.csv

- Je obtenir

file2012-05.csv
MYD
2012-05.csv
MYD
Date is:

Comment puis-je obtenir réellement la fonction setDate pour renvoyer la valeur que je veux?

Je veux rentrer %NOM%. Je faisais des expériences avec %1 et j'ai oublié de le changer en arrière. J'ai changé le code de retour de l'original maintenant, ne fonctionne toujours pas.

OriginalL'auteur AnthonyM | 2012-07-10