for %i in (*.txt) do if "%~zi" geq "1" echo %~nxzi > liste.txt
for /R "c:\Windows" %i in (*.txt) do if "%~zi" geq "1" echo %~nxzi
EQU Égal à NEQ Différent de LSS Inférieur à LEQ Inférieur ou égal à GTR Supérieur à GEQ Supérieur ou égal à
@Echo Off setlocal ENABLEDELAYEDEXPANSION Set P1=0 Set Dossier=%1 For /R %Dossier% %%I In (*.*) Do Set /A P1=!P1!+%%~ZI/1048 Echo Le dossier %Dossier% contient %P1% Koctets
De plus, la substitution de références de variables FOR a été améliorée.
Vous pouvez maintenant utiliser la syntaxe optionnelle suivante :
%~I - étend %I en supprimant les guillemets (")
%~fI - étend %I en nom de chemin d'accès reconnu
%~dI - étend %I en lettre de lecteur uniquement
%~pI - étend %I en chemin d'accès uniquement
%~nI - étend %I en nom de fichier uniquement
%~xI - étend %I en extension de fichier uniquement
%~sI - chemin étendu contenant uniquement des noms courts
%~aI - étend %I en attributs du fichier
%~tI - étend %I en date/heure du fichier
%~zI - étend %I en taille du fichier
%~$PATH:I - parcourt les répertoires de la variable
d'environnement PATH et étend %I en nom du
premier fichier reconnu trouvé. Si le nom de la
variable d'environnement n'est pas défini ou
que le fichier n'est pas trouvé par la recherche,
alors ce modificateur étend en chaîne vide
Vous pouvez combiner les modificateurs pour obtenir des résultats composés :
%~dpI - étend %I en lettre de lecteur et chemin d'accès uniquement
%~nxI - étend %I en nom de fichier et extension uniquement
%~fsI - étend %I en nom de chemin complet avec noms courts
uniquement
%~dp$PATH:i - parcourt les répertoires listés dans la variable
d'environnement PATH à la recherche de %I et étend
en lettre de lecteur du premier trouvé.
%~ftzaI - étend %I en DIR comme ligne en sortie
Dans les exemples ci-dessus %I et PATH peuvent être remplacés par d'autres valeurs valides. La syntaxe %~ se termine par un nom de variable FOR valide. Le choix de noms de variables en majuscules comme %I facilite la lecture et empêche toute confusion avec les modificateurs qui ne tiennent pas compte de la casse.
rem -------------------------------------------- rem ce script rechercher les fichiers non vide rem pour un type (extension) donné rem dans une directorie donné rem -------------------------------------------- @Echo Off echo extension : %1 echo dossier : %2 setlocal ENABLEDELAYEDEXPANSION set /A P1=0 set fic=%1 set dossier=%2 echo Nettoyage des ERR_NOCONN for /R %dossier% %%i in (%fic%) do if "%%~zi" geq "1" ( rem echo %%~nxi type "%dossier%%%~nxi" |findstr /V "ERR_NOCONN" > "%dossier%%%~nxi_old" move "%dossier%%%~nxi_old" "%dossier%%%~nxi" 1> nul) echo Recherche des fichiers non_vide for /R %dossier% %%i in (%fic%) do if "%%~zi" geq "1" ( echo %%~nxi type %dossier%%%~nxi echo. set /A P1=!P1!+1 ) echo Il y a !P1! fichiers non vide set /A nb_fic=!P1! if %nb_fic% equ 0 goto TERMINE goto ERREUR :ERREUR Echo "il y a !P1! Pb sur ces serveurs" :TERMINE exit /b %nb_fic%