Test sur le contenu d'un répertoire.
richy -
Bonjour,
Script dos
le besoin c'est de tester sur le contenu du répertoire "D:\Echanges\Export\"
IF EXIST des fichier je copie mon fichier témoin "c:\cygwin\depot.tem" dans le répertoire "D:\Echanges\Export\" avec les fichier trouvés à consommer.
ELSE je fais rien
ma boucle IF me renvoi dans les deux cas "AUCUN FICHIER A CONSOMMER"
merci d'avance.
## Script DOS ###################
@echo off
PATH=%PATH%;D:\Echanges\Export\
TITLE VERIFICATION DU FICHIER TEMOIN
::set chemin="D:\Echanges\Export\*"
set chemin="Echanges\Export\*"
::dir %chemin%
IF EXIST "D:\%chemin%" (
GOTO MESS
) ELSE (
echo.
echo.
echo.
echo " AUCUN FICHIER A CONSOMMER "
timeout 20 > NUL
goto FIN
)
:MESS
cd C:\cygwin\
copy /y C:\cygwin\depot.tem D:\Echanges\Export\
goto FIN
:FIN
exit
##########################
- Test sur le contenu d'un répertoire.
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
1 réponse
Bonjour,
Ton affaire marche plus ou moins mais est compliquée (les déclarations PATH, CD et DIR ne servent à rien).
Dans tous les cas, on est à la merci d'un "faux vide" qu'il faudrait tester (afficher les fichiers cachés, par exemple existence éventuelle d'un fichier system.ini).
Une solution comme suit me paraît plus "élégante":
@echo off
TITLE VERIFICATION DU FICHIER TEMOIN
::set chemin="D:\Echanges\Export\
set chemin="D:\Echanges\Export"
DIR /b /s /a %chemin% | findstr .>nul || (
GOTO NONE
)
copy /y C:\cygwin\depot.tem %chemin%
GOTO FIN
:NONE
echo.
echo.
echo.
echo " AUCUN FICHIER A CONSOMMER "
rem pause ou timeout
pause
:FIN
exit
rebonjour,
merci pour votre réponse!
vous n'avez pas tester sur le contenu du répertoire?
désolé ça ne marche : voici ce que donne l'exécution:
Fichier introuvable
" AUCUN FICHIER A CONSOMMER "
Appuyez sur une touche pour continuer...
Bien sûr que j'ai testé, évidemment avec des chemins personnalisés: j'ai créé sous G:\photos\ un dossier test vide et utilisé un dossier antibes qui ne l'est pas; dans le premier cas j'affiche bien " AUCUN FICHIER A CONSOMMER ", dans le deuxième je copie bien le fichier empty.ico dans le dossier \antibes.
Ton fichier va à NONE parce que l'erreur rendue par DIR est analysée par FINDSTR comme un compte nul, et DIR rend une erreur parce que la syntaxe du chemin n'est pas valide (on peut vérifier en choisissant pour chemin G:\photos\abcd qui n'existe pas).
Soit donc ton dossier D:\Echanges\Export n'est pas existant lors de l'exécution (je n'ai pas testé, j'avais compris qu'il existait forcément mais éventuellement vide), soit D:\ est un lecteur externe inaccessible, soit il y a une erreur de syntaxe dans la définition du chemin.
Re bonjour,
Merci ça fonctionne, c bien gentil de votre part.
bonne journée!