Récupérer ou extraire une sous-chaîne d'une variable %%f dans un FOR - Shell/Batch - Programmation
Marsh Posté le 25-03-2007 à 15:42:35
1. exit
sauf qu'il s'agit d'une commande Windows et pas du DOS.
2. la commande set dans une boucle for ou dans un if dépend du setting de l'expansion retardée des variables. Regarde l'aide de set pour plus d'infos.
Donc pour traiter une chaine de caractères dans ce cas, le plus simple serait de passer par l'appel d'une procédure, à la manière de :
http://forum.hardware.fr/hfr/Progr [...] 2625_1.htm
Marsh Posté le 25-03-2007 à 16:41:53
FOR /F "Delims=" %%f in ('DIR /b "*.*"') DO call :commande "%%f"
pause
exit
:commande
set a=%1
set a=%a:"=%
echo %a:~3%
echo %a%
goto :eof
Marsh Posté le 25-03-2007 à 14:08:45
Bonjour,
1. Y a-t-il une commande DOS permettant de fermer la fenêtre Windows dans laquelle se trouve le .BAT ?
2. Dans cette boucle FOR, comment récupérer (dans une variable) la valeur de %%f, pour ensuite y extraire une sous-chaîne ?
FOR /F "Delims=" %%f in ('DIR /b "*.*"') DO (
REM SET a=%%f
REM ECHO.%a:~3%
ECHO.%%f
)
Les 2 lignes commentées (REM) ne marchent pas
Peut-on utiliser les règles d'extraction de sous-chaîne (set masubstr=%MAVAR:~4%) avec les variable de la forme %%v qu'on utilise dans certaines boucles FOR ? Si oui, comment ?
Merci.