A voir également:
- Emboîter commande "FOR" Batch
- Invite de commande - Guide
- Commande terminal mac - Guide
- Fichier batch - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Commande dism - Guide
2 réponses
Bonjour et EUREKA!
Mon premier post était un peu hâtif, en effet, en lançant plusieurs fois le batch, il se met à marcher.
En fait la solution est d'utiliser le delay d'expension de variable comme ci-dessous (mettre l'option avec setlocal et quand on veut utiliser une variable en lecture, l'appeler en l'entourant du signe ! au lieu de %
Tu peux avoir l'explication en faisant sous cmd : "SET /?"
Attention, moi j'ai mis e répertoire D:\Photo alors que le tien était F:\
Cordialement et désolé d'avoir donné un indication erronée a départ.
Mon premier post était un peu hâtif, en effet, en lançant plusieurs fois le batch, il se met à marcher.
En fait la solution est d'utiliser le delay d'expension de variable comme ci-dessous (mettre l'option avec setlocal et quand on veut utiliser une variable en lecture, l'appeler en l'entourant du signe ! au lieu de %
Tu peux avoir l'explication en faisant sous cmd : "SET /?"
@echo off setlocal enableDelayedExpansion for /r "D:\Photos\2010" %%d in (*.jpg) do ( set tp=%%~td echo " valeur tp " !tp! for /f "tokens=1-3 delims=/: " %%a in ("!tp!") do ( set datef=%%a%%b%%c set jf=%%a set mf=%%b set af=%%c) echo jour : !jf! mois : !mf! a : !af! date du fichier: !datef! )
Attention, moi j'ai mis e répertoire D:\Photo alors que le tien était F:\
Cordialement et désolé d'avoir donné un indication erronée a départ.
Bonjour,
C'est juste une histoire de "scope"
Ta 2ieme boucle marche, mais les variables jf, mf, af et datef sont locales à cette 2ieme boucle.
Il suffi de les initialiser dans la première pour que ça marche :
C'est juste une histoire de "scope"
Ta 2ieme boucle marche, mais les variables jf, mf, af et datef sont locales à cette 2ieme boucle.
Il suffi de les initialiser dans la première pour que ça marche :
for /r "D:\Photos\2010\2010-11-15" %%d in (*.jpg) do ( set tp=%%~td echo " valeur tp " %tp% Rem initialiser des variables dans ce scope set datef="" set jf="" set mf="" set af="" for /f "tokens=1-3 delims=/: " %%a in ("%tp%") do ( set datef=%%a%%b%%c set jf=%%a set mf=%%b set af=%%c) echo jour : %jf% mois : %mf% a : %af% date du fichier: %datef% )
Bonjour
Il y a un pb car a "echo " ça ne m'affiche pas la date et pourtant si je j'entre la comande "SET" a la fin je voit marquer la variable avec les bon nombre pourquoi ? Et cela marche pas non plus, pourquoi ?
set datep=15112010
for /r "D:\Photos\2010\2010-11-15" %%d in (*.jpg) do (
set cp=%%t
set tp=%%~td
echo " valeur tp " %tp%
set datef=""
set jf=""
set mf=""
set af=""
for /f "tokens=1-3 delims=/: " %%a in ("%tp%") do (
set datef=%%a%%b%%c
set jf=%%a
set mf=%%b
set af=%%c)
echo jour : %jf% mois : %mf% a : %af% date du fichier: %datef%
if %datep%==%datef% xcopy "%cp%" "C:\photo\"
)
(mon but est de copier des fichier juste d'un jour)
Si vous avez une autre solution je la prendrais volontiers.
Merci pour vos réponses
Il y a un pb car a "echo " ça ne m'affiche pas la date et pourtant si je j'entre la comande "SET" a la fin je voit marquer la variable avec les bon nombre pourquoi ? Et cela marche pas non plus, pourquoi ?
set datep=15112010
for /r "D:\Photos\2010\2010-11-15" %%d in (*.jpg) do (
set cp=%%t
set tp=%%~td
echo " valeur tp " %tp%
set datef=""
set jf=""
set mf=""
set af=""
for /f "tokens=1-3 delims=/: " %%a in ("%tp%") do (
set datef=%%a%%b%%c
set jf=%%a
set mf=%%b
set af=%%c)
echo jour : %jf% mois : %mf% a : %af% date du fichier: %datef%
if %datep%==%datef% xcopy "%cp%" "C:\photo\"
)
(mon but est de copier des fichier juste d'un jour)
Si vous avez une autre solution je la prendrais volontiers.
Merci pour vos réponses
7 juil. 2011 à 07:59