BATCH IF EXIST
Forum Programmation : BATCH IF EXIST
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
Merci d'avance A+
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
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Je ne comprends pas pour les paramètres, je n'ai jamais compris...
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
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Mais pourquoi faire tout ça ?
Je ne comprends pas ^^
Merci pour les explications ;p
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.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
A ça m'intéresse ça la mise à jour ^^
Le paramètres tu aurais un exemple de batch stp ?
Je vais regarder sur ton lien
Je ne comprends pas, vu que je ne comprends pas les paramètres
Désolé, mais je vois pas comment t'expliquer autrement.
Dans le lien, j'avais fait un exemple lance le et bidouille le.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ok je regarde demain
Merci
Je ne comprends pas le fonctionnement...
Je ne comprends à quoi %1 est égal
Désolé mais là je comprends vraiment rien
Dans %1, il a le premier paramètre quand tu appelles le batch, %2 le deuxième, etc.
la commande SHIFT permet de tout décaler.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
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
C'est bon j'ai résolu mon problème merci quand même !
Il suffisait que je change le fichier à ouvrir ^^
Il y a 360 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

CRicky