Se connecter avec
S'enregistrer | Connectez-vous

BATCH IF EXIST

Dernière réponse : dans Programmation

Bonjour,

Voilà mon code

@echo off
if exist "%programFiles%\Bitdownload" echo "%programFiles%\Bitdownload" Present > "%systemdrive%\List_Search1.log"
if exist "%programFiles%\BitGrabber" echo "%programFiles%\BitGrabber" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\BitRoll" echo "%programFiles%\BitRoll" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\BitTorrent Fastest Tool" echo "%programFiles%\BitTorrent Fastest Tool" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\divocodec" echo "%programFiles%\divocodec" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\DomPlayer" echo "%programFiles%\DomPlayer" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\DivoPlayer" echo "%programFiles%\DivoPlayer" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Download Plugin" echo "%programFiles%\Download Plugin" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Gala Player" echo "%programFiles%\Gala Player" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Get-Torrent" echo "%programFiles%\Get-Torrent" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\KitPlayer" echo "%programFiles%\KitPlayer" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\NetPumper" echo "%programFiles%\NetPumper" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Plugindl" echo "%programFiles%\TorrentQ" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\TorrentQ" echo "%programFiles%\Plugindl" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\TorrentSoftware" echo "%programFiles%\TorrentSoftware" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Torrent101" echo "%programFiles%\Torrent101" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Winzix" echo "%programFiles%\Winzix" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\3wPlayer" echo "%programFiles%\3wPlayer" Present >> "%systemdrive%\List_Search1.log"
notepad "%systemdrive%\List_Search.log1"
pause


Je ne comprends pas, j'ai certains de ces dossiers dans program files et le fichier texte ressort vide :o 

Merci d'avance A+

Autres pages sur : batch exist

Lassé par la pub ? Créez un compte
Expert Programmation

alors d'abord, utilise un script .bat où tu envoies la liste en paramètre (et dans ce .bat, tu utilises SHIFT pour passer tous les paramètres).
Ensuite au premier if, tu utilise > puis >>, ce qui n'a pas de sens puisque tu ne rentre pas forcément dans le premier if. Crée ou vide le fichier en début (@echo off > "%systemdrive%\List_Search1.log" ), après, n'utilise que des >>.

quand tu a fait tout ça propre, fait un simple echo sans redirection pour voir ton problème.

ps: vérifie aussi que le contenu de ta variable pointe bien sur le répertoire que tu vérifies ;) 
Expert Programmation

Pour les paramètres multiples, tu utilises toujours %1.
Le Shift permet de tous faire décaler.
Exemple pour un lancement: mon_script par1 par2 par3 par4
%1=par1, %2=par2, %3=par3, %4=par 4, %5=
après un shift:
%1=par2, %2=par3, %3=par4, %4=

En pratique, tu boucles tant que %1 n'est pas vide, et à la fin de chaque boucle tu "shift" les paramètres. Tu peux aussi faire des couples de valeurs, etc.

Je viens de penser que j'avais écrit de la doc là-dessus:
http://fr.wikibooks.org/wiki/DOS/Shift
Expert Programmation

Et bien tu ne fais qu'un seul if exist (tan le batch qui boucle sur les paramètres.
Dans ton batch principal tu appelles l'autre batch avec le liste des paramètres.
Je code est plus simple, donc moins de risque de bug, et tu peux facilement mettre à jour la liste des fichiers à tester.

Merci,

Bon j'ai essayé autre chse et pourtant ça ne fonctionne pas !

@echo off
for %%i in ('type "%systemdrive%\Dossier.txt"') do ( if exist %programfiles%\%%z echo trouv‚ %%i )
pause

il existe bien %systemdrive%\Dossier.txt dedans ce dossier il y écris des nom de programmes ( Un nom par ligne ) et il existe bien un dossier nommé %programfiles%\%%z dans le dossier programme files ( Le dossier c'est bitDownload ) donc je ne vois pas pourquoi ça ne fonctionne pas :/ 

liblabrute a dit :
Bonjour,

Voilà mon code

@echo off
if exist "%programFiles%\Bitdownload" echo "%programFiles%\Bitdownload" Present > "%systemdrive%\List_Search1.log"
if exist "%programFiles%\BitGrabber" echo "%programFiles%\BitGrabber" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\BitRoll" echo "%programFiles%\BitRoll" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\BitTorrent Fastest Tool" echo "%programFiles%\BitTorrent Fastest Tool" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\divocodec" echo "%programFiles%\divocodec" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\DomPlayer" echo "%programFiles%\DomPlayer" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\DivoPlayer" echo "%programFiles%\DivoPlayer" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Download Plugin" echo "%programFiles%\Download Plugin" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Gala Player" echo "%programFiles%\Gala Player" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Get-Torrent" echo "%programFiles%\Get-Torrent" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\KitPlayer" echo "%programFiles%\KitPlayer" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\NetPumper" echo "%programFiles%\NetPumper" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Plugindl" echo "%programFiles%\TorrentQ" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\TorrentQ" echo "%programFiles%\Plugindl" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\TorrentSoftware" echo "%programFiles%\TorrentSoftware" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Torrent101" echo "%programFiles%\Torrent101" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\Winzix" echo "%programFiles%\Winzix" Present >> "%systemdrive%\List_Search1.log"
if exist "%programFiles%\3wPlayer" echo "%programFiles%\3wPlayer" Present >> "%systemdrive%\List_Search1.log"
notepad "%systemdrive%\List_Search.log1"
pause


Je ne comprends pas, j'ai certains de ces dossiers dans program files et le fichier texte ressort vide :o 

Merci d'avance A+

Lassé par la pub ? Créez un compte
Tom's guide dans le monde