Récupérer ou extraire une sous-chaîne d'une variable %%f dans un FOR

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 à 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.

Reply

Marsh Posté le 25-03-2007 à 14:08:45   

Reply

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

Reply

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


Message édité par blastkiller le 25-03-2007 à 16:45:00
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed