Page 1 sur 1

[Résolu] Batch : Condition IF et processus

Posté : dim. 18 déc. 2011 23:27
par Saachaa
Bonsoir,

J'vous fais l'topos. J'ai un fichier batch avec pas moi de 1000 if tel quel :

if exist "xxx" del /f /s /q "xxx"

fois 1000..

Problème à l'exécution, le programme se stop dès qu'il rencontre un fichier utilisé par un processus...

Donc je me demandais, comment je pouvais procéder, sachant que retaper mille fois "else continue" (si ça exsite en batch) est assez frustrant ^^.

Au pire j'utiliserais Sed s'il n'y a que ça...

Afin bon, j'vous d'mande vos avis

Merci et bonne soirée

Re: [Résolu] Batch : Condition IF et processus

Posté : dim. 18 déc. 2011 23:49
par 2011N2
Hello

Justement, tu n'as pas possiblité de stopper ces processus ?

Je vais voir si je trouve quelque chose

@+

Gabriel.

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 00:01
par Saachaa
Salut,

Oui, mais dans ce cas, faudrait savoir quel processus y touche... et ça sais pas faire ^^

Merci à toi

Bonne soirée

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 00:13
par 2011N2
Hello

Oui...

Je vais voir, je vais bien trouver quelque chose

@+

Gabriel.

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 11:28
par Invité
Bonjour saachaa


1000 if pour if exist "xxx" del /f /s /q "xxx" ??

Pourquoi tu ne fais pas une boucle ?

Du style
for %%a in (
"%userprofile%\desktop\1.txt"
"%userprofile%\desktop\2.txt"
"%userprofile%\desktop\3.txt"
"%userprofile%\desktop\4.txt"
"%userprofile%\desktop\5.txt"
) do if exist %%~a (
del %%~a
) else (echo Probleme)

Tu dis que le programme se stoppe...

Je te conseilles d'insérer des pauses, afin de voir où se situe le problème


Ou alors tu fais plusieurs boucles

Par exemple sur 100 fichiers, tu fais 4 boucles de 25 fichiers

du style
boucle1 suivie d'une pause
boucle2 suivie d'une pause
boucle3 suivie d'une pause
boucle4

Ainsi, si après la boucle 1 est passé avec succès, c'est que le programme fonctionne
Sinon, tu sais que dans la boucle1, des fichiers sont "occupés"...

De là, il faut trouver un moyen de les "débloquer"


@+



Edit : ou alors, pour la suppression : Passes par autoit == compile le en exe et fais un call dans ton batch
surtout qu'en autoit, il existe elseif

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 13:40
par Saachaa
Salut

Pourquoi pas fais de boucle ? Parce-que je ne sais pas les faire en batch ^^.

Sinon, j'ai appelé mon batch via l'invite de commande pour qu'il se stop en cas d'erreurs...

L'erreur vient de la suppression d'un fichier utilisé par un processus, et donc, accessoirement n'importe quel fichier...

Donc si t'as une boucle qui dit que pour chaque fichier utilisé par un processus on le "saute", enfin on continue le bazar je suis pour

Bonne idée pour l'autoit, je regarde de mon côté

En tout cas merci à toi

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 13:43
par Invité
Re


POur l'autoit, regarde l'aide pour la commande filedelete

Il y a surement une solution pour faire une boucle avec filedelete


Je regarde ca de plus pres

++

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 15:23
par Invité
Salut

regarde ce script

If FileExists(@UserProfileDir "\desktop\1.txt") Then
   FileDelete(@UserProfileDir "\desktop\1.txt")
Else
   MsgBox(0, "Erreur", "1.txt non supprimé")
EndIf

If FileExists(@UserProfileDir "\desktop\2.txt") Then
   FileDelete(@UserProfileDir "\desktop\2.txt")
Else
   MsgBox(0, "Erreur", "2.txt non supprimé")
EndIf

If FileExists(@UserProfileDir "\desktop\3.txt") Then
   FileDelete(@UserProfileDir "\desktop\3.txt")
Else
   MsgBox(0, "Erreur", "3.txt non supprimé")
EndIf

If FileExists(@UserProfileDir "\desktop\4.txt") Then
   FileDelete(@UserProfileDir "\desktop\4.txt")
Else
   MsgBox(0, "Erreur", "4.txt non supprimé")
EndIf

If FileExists(@UserProfileDir "\desktop\5.txt") Then
   FileDelete(@UserProfileDir "\desktop\5.txt")
Else
   MsgBox(0, "Erreur", "5.txt non supprimé")
EndIf
J'ai crée 5 fichiers moi meme
= ils sont supprimés

j'ai relancé le script, 5 erreurs sur chaque fichier = tu vois comme cela quels fichiers causent pb

Tu peux faire aussi un filexists


@+

Re: [Résolu] Batch : Condition IF et processus

Posté : lun. 19 déc. 2011 15:28
par Saachaa
Annnhhh, t'as pas du comprendre


L'erreur vient de la suppression d'un fichier utilisé par un processus, et donc, accessoirement n'importe quel fichier...

Exemple:

Suppression des fichiers temps d'IE, si internet explorer est ouvert, je suis fichu ^^

Tu as compris ?

Merci à toi

Re: [Résolu] Batch : Condition IF et processus

Posté : mar. 20 déc. 2011 16:14
par Saachaa
Salut,

J'ai "converti" mon batch en autoit, je me suis dis que ce serait plus sérieux

Mais j'ai besoin d'un coup de main...

%LocalAppData%
%LocalLowAppData%
%Music%

ça donne quoi en Autoit ??

Je dois passer par le chemin complet ?

Pour infos 'ça servira à d'autres' : http://www.autoitscript.com/autoit3/docs/macros.htm

Thanks

Re: [Résolu] Batch : Condition IF et processus

Posté : mar. 20 déc. 2011 16:21
par Invité
Salut

J'espère que tu as installé le pack autoit ^^

car les variables d'environnement commence par @ en autoit

Normalement, quand tu tapes @ : tu as une liste des différents "commandes" qui commencent pas @

Dont les fameuses variables


Je serais toi, je fairais un second script qui lancerait les répertoires

du style run(@userprofiledir)


@+

Re: [Résolu] Batch : Condition IF et processus

Posté : mar. 20 déc. 2011 16:38
par Saachaa
Ahhhh, mes oui ça je sais

J'ai converti tout ça avec ça (Linux):

sed 's/\"%Documents%/\@DocumentsCommonDir \ \"/g' CC4 CC3

par exemple pour convertir la variable batch vers Autoit

Mais il me manque celles citées plus haut

Re: [Résolu] Batch : Condition IF et processus

Posté : dim. 26 févr. 2012 15:18
par micka76000
Bonjour,

Ou ce la en est depuis le temps ?

Merci ++

Re: [Résolu] Batch : Condition IF et processus

Posté : jeu. 1 mars 2012 00:41
par Saachaa
Salut Micka,

Désolé je n'avais pas vu la réponse.

Tu peux mettre en résolu, j'ai réécris mes 3000 boucles en Autoit.

Merci à vous, bonne soirée

Re: [Résolu] Batch : Condition IF et processus

Posté : jeu. 1 mars 2012 00:47
par micka76000
Salut Micka,

Désolé je n'avais pas vu la réponse.

Tu peux mettre en résolu, j'ai réécris mes 3000 boucles en Autoit.

Merci à vous, bonne soirée
Bonsoir,

Ce n'est pas grave de ne pas avoir vu la question (comme beaucoup de membre du forum) , mais tu aurai pu mettre en résolu toi même.

Bravo pour ton travail, good game.

Re: [Résolu] Batch : Condition IF et processus

Posté : jeu. 1 mars 2012 00:59
par Saachaa
Oups, Sorry pour le résolu ..j'y penserais la prochaine fois..

A bientôt