Bonjour,
J'aimerai savoir comment faire pour créer un script qui vérifier des fichiers se trouvant dans C:\Users\toto avec comme extension .test et .exp et si les fichiers sont présent alors sortir avec un code erreur 1
Merci de vos retours
Version imprimable
Bonjour,
J'aimerai savoir comment faire pour créer un script qui vérifier des fichiers se trouvant dans C:\Users\toto avec comme extension .test et .exp et si les fichiers sont présent alors sortir avec un code erreur 1
Merci de vos retours
Je vous donne un premier indice :
Cette commande affiche le nombre de fichiers .txt dans mon répertoire (prend aussi les sous-répertoire)Code:Get-ChildItem -Path 'M:\monrep\t1' -recurse -filter *.txt | Group-Object -Property Directory
Vous le faites en doubles pour vos deux types de fichiers.
Vous mettez le résultat dans une variable qui lui est propre
Un petit IF sur les deux variables et là, un petit Exit(1)
Je vous laisse faire le code, si il ne va pas, postez le (En renomant votre répertoire) et nous verrons.
Bisous
J'ai essayé avec le code ci-dessous mais ca ne marche pas, je veux juste que le batch pante si il trouve des fichiers avec certaines extensions
Code:
1
2
3
4 if exist "C:\Users\toto\*.exp* ( set CR=1 goto fin)
Avez-vous essayer cela ?
Si je comprend bien, vous n'avez pas besoin d'avoir un fichier de chaque extension pour quitter le script avec le code à 1.
C'est ce que fais ce code, a vous de jouer pour mettre les extensions qui vont bien
Code:
1
2
3 Get-ChildItem -Path 'M:\MonRep\t' -Include *.txt , *.prc -Recurse -Force | ForEach-Object { exit(1) }
En fait j'ai juste besoin de checker dans le répertoire C:\Users\toto si j'ai des fichiers avec comme extension .test ou .exp pas forcement les deux, et si c'est le cas je dois avoir un code retour 1
merci pour ta ligne de commande mais je ne dois pas preciser if exist en debut de batch ?
Non
En fait, ce que fait mon code c'est parcourir, pour ton répertoire (Et sous répertoire si tu en as) la liste des fichiers qui ont une extensions parmis la liste derrière la clause -Include
Si tu rentres dans le foreach, alors tu as au moins un fichier avec l'extension souhaité, donc tu peux dire à ton script de faire l'exit
Si tu as des sous répertoires dans ton dossier, et que tu ne veux pas les lire, il faut enlever la clause -recurse
J'espére avoir été assez clair, n'hésites pas si besoin
je pourrais te conseiller foreach sur les noms de ton répertoire.
ResultatCode:
1
2
3
4
5
6 foreach($ligne in $(ls)){ $ligne.Name if($ligne.Name -like "*.t"){ "extension existante present" } }
Code:
1
2
3
4
5
6
7
8 test.txt test2.t extension existante present test2.te test2.test test2.tr test2.tt test2.txt
Ton script c'est du powershell, puis je l’intégrer dans un script bat que j'ai crée ?
mon script est crée en batch
Il n'est pas possible de créer juste une ligneMais je ne sais pas si ca marcherait ?Code:if exist "C:\Users\gourdon\Desktop\test\*.txt* else set CR=1 goto fin)
Fichier uniquement dans dossier C:\Users\toto
Code:dir /a-d "C:\Users\toto\*.test" "C:\Users\toto\*.exp" 1>nul 2>&1 &&exit 1
Fichier dans dans dossier ou sous-dossier C:\Users\toto
Code:dir /a-d /s "C:\Users\toto\*.test" "C:\Users\toto\*.exp" 1>nul 2>&1 &&exit 1