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%