Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MIRC EXPLORER


Information sur la source

Catégorie :Scripts Niveau : Débutant Date de création : 10/01/2005 Date de mise à jour : 25/05/2005 10:51:06 Vu : 8 213

Note :
8,14 / 10 - par 7 personnes
8,14 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (38)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce script permet d'explorer ses disques durs, lecteurs cd...il liste les dossiers et fichiers d'un repertoire, ou disque dur a la racine;
J'ai ajouté un dialogue pour la recherche, mais le resultat s'affiche dans une window
Il recherche  les fichiers ou dossiers sur le disque spécifié ou sur tous les disques ou partitions.
Possibilité de retourner le résultat dans un fichier, et de faire une commande sur les resultats.
 

Source

  • alias cd {
  • window -aek @dir
  • var %pathh $1-
  • if (!%pathh) { commandeeeus | halt }
  • echo @dir $str(_,65)
  • echo 1 @dir Dossier(en bleu) et fichier(en vert) contenus dans $1-
  • $finddir($null,$null,$null,$finddir(%pathh,*,0,1,echo 2 @dir $1- ))
  • $findfile($null,$null,$null,$findfile(%pathh,*,0,1,echo 3 @dir $1- ))
  • echo 7 @dir $str(_,65)
  • }
  • alias rch {
  • unset %resultat.de.recherche
  • unset %resultat.de.recherche.2
  • unset %couleur
  • unset %fichier.texte
  • unset %deuxxx
  • unset %doss
  • unset %fich
  • unset %commmande
  • unset %dossier.de.recherche
  • unset %element.a.chercher
  • unset %arborescence
  • window -aek @dir
  • if (* isin $gettok($gettok($1-,2,62),1,92)) { /rcht $1- | halt }
  • else {
  • if (? isin $1-) { set %commmande $gettok($1-,2,63) }
  • if (/ isin $1) && (: !isin $1) && (!%commmande) { set %dossier.de.recherche $gettok($2-,2,62) | set %element.a.chercher $gettok($2-,1,62) }
  • elseif (/ isin $1) && (: !isin $1) && (%commmande) {
  • if (? isin $gettok($2-,2,62)) { set %dossier.de.recherche $gettok($gettok($2-,2,62),1,63) | set %element.a.chercher $gettok($2-,1,62) }
  • else { set %dossier.de.recherche $gettok($2-,2,62) | set %element.a.chercher $gettok($2-,1,62) }
  • }
  • elseif (!%commmande) { set %dossier.de.recherche $gettok($1-,2,62) | set %element.a.chercher $gettok($1-,1,62) }
  • elseif (%commmande) {
  • if (? isin $gettok($1-,2,62)) { set %dossier.de.recherche $gettok($gettok($1-,2,62),1,63) | set %element.a.chercher $gettok($1-,1,62) }
  • else { set %dossier.de.recherche $gettok($1-,2,62) | set %element.a.chercher $gettok($1-,1,62) }
  • }
  • if ((/a isin $1) || (/da isin $1) || (/tua isin $1) || (/atu isin $1)) { var %arborescence 1 }
  • else { var %arborescence 100 }
  • set %resultat.de.recherche 0
  • set %resultat.de.recherche.2 0
  • set %fichier.texte $gettok($gettok($1-,1,63),3,62)
  • if (!%dossier.de.recherche) || (!$regex($1-,:)) || (!$regex($1-,>)) || (!%element.a.chercher) {
  • commandeeeus
  • halt
  • }
  • echo @dir $str(_,65)
  • echo 12 @dir Recherche en cours ...
  • if ((/d isin $1) || (/ad isin $1)) {
  • set %couleur 2
  • $finddir($null,$null,$null,$finddir(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- ))
  • echo 10 @dir Recherche terminée
  • echo 7 @dir %resultat.de.recherche dossiers trouvé(s) pour %element.a.chercher dans %dossier.de.recherche
  • echo 7 @dir $str(_,65)
  • if (%resultat2 == Recherche terminée sans résultat sur tous les disques) && (%resultat.de.recherche != 0) { set %resultat2 $null | set %resultat2 %resultat.de.recherche dossiers(s) trouvé(s) dans %dossier.de.recherche ; | set %doss %element.a.chercher }
  • elseif (%resultat2) && (%resultat.de.recherche != 0) { set %resultat2 %resultat2 %resultat.de.recherche dossiers(s) trouvé(s) dans %dossier.de.recherche ; }
  • unset %couleur
  • unset %fichier.texte
  • unset %commmande
  • }
  • elseif ((/tu isin $1) || (/tua isin $1) || (/atu isin $1)) {
  • set %deuxxx 1
  • set %couleur 2
  • set %element2.a.chercher %element.a.chercher
  • $finddir($null,$null,$null,$finddir(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- ))
  • set %deuxxx 2
  • set %couleur 3
  • $findfile($null,$null,$null,$findfile(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- ))
  • echo 10 @dir Recherche terminée
  • echo 7 @dir %resultat.de.recherche fichier(s) trouvé(s) pour %element.a.chercher dans %dossier.de.recherche
  • echo 7 @dir %resultat.de.recherche.2 dossier(s) trouvé(s) pour %element.a.chercher dans %dossier.de.recherche
  • echo 7 @dir $str(_,65)
  • if (%resultat2 == Recherche terminée sans résultat sur tous les disques) && ((%resultat.de.recherche != 0) || (%resultat.de.recherche.2 != 0)) { set %resultat2 $null | set %resultat2 %resultat.de.recherche fichier(s) et %resultat.de.recherche.2 dossier(s) trouvé(s) dans %dossier.de.recherche ; }
  • elseif (%resultat2) && ((%resultat.de.recherche != 0) || (%resultat.de.recherche.2 != 0)) { set %resultat2 %resultat2 %resultat.de.recherche fichier(s) et %resultat.de.recherche.2 dossier(s) trouvé(s) dans %dossier.de.recherche ; }
  • unset %couleur
  • unset %fichier.texte
  • unset %commmande
  • }
  • else {
  • set %couleur 3
  • $findfile($null,$null,$null,$findfile(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- ))
  • echo 10 @dir Recherche terminée
  • echo 7 @dir %resultat.de.recherche fichier(s) trouvé(s) pour %element.a.chercher dans %dossier.de.recherche
  • echo 7 @dir $str(_,65)
  • if (%resultat2 == Recherche terminée sans résultat sur tous les disques) && (%resultat.de.recherche != 0) { set %resultat2 $null | set %resultat2 %resultat.de.recherche fichier(s) trouvé(s) dans %dossier.de.recherche ; | set %fich %element.a.chercher }
  • elseif (%resultat2) && (%resultat.de.recherche != 0) { set %resultat2 %resultat2 %resultat.de.recherche fichier(s) trouvé(s) dans %dossier.de.recherche ; }
  • unset %couleur
  • unset %fichier.texte
  • unset %commmande
  • }
  • }
  • }
  • alias rcht {
  • var %diskk 65
  • set %resultat2 Recherche terminée sans résultat sur tous les disques
  • set %lignee z
  • while (%diskk < 91) {
  • rch $puttok($1-,$chr(%diskk) $+ : $+ \ $+ $deltok($gettok($1-,2,62),1,92),2,62)
  • inc %diskk 1
  • }
  • echo 10 @dir Recherche terminée
  • if (%fich) { echo 7 @dir Resultat pour %fich : }
  • elseif (%doss) { echo 7 @dir Resultat pour %doss : }
  • elseif (%deuxxx == 2) { echo 7 @dir Resultat pour %element2.a.chercher : | echo 7 @dir %resultat2 | unset %resultat2 | unset %lignee | unset %deuxxx | unset %element2.a.chercher | halt }
  • echo 7 @dir %resultat2
  • unset %resultat2
  • unset %fich
  • unset %doss
  • unset %lignee
  • unset %deuxxx
  • unset %commmande
  • }
  • alias resultatt {
  • echo %couleur @dir $1-
  • if (%commmande) { var %commmm $shortfn($1-) | $replace(%commmande,<,%commmm) }
  • if (%deuxxx == 1) {
  • inc %resultat.de.recherche.2 1
  • if (%lignee == z) && (%fichier.texte) { set %lignee 0 | inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- }
  • elseif (%lignee) && (%fichier.texte) { inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- }
  • elseif (%fichier.texte) && (!%lignee) { write -l $+ %resultat.de.recherche.2 %fichier.texte $1- }
  • }
  • elseif (%deuxxx == 2) {
  • inc %resultat.de.recherche 1
  • if (%lignee == z) && (%fichier.texte) { set %lignee 0 | inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- }
  • elseif (%lignee) && (%fichier.texte) { inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- }
  • elseif (%fichier.texte) && (%resultat.de.recherche) { write -l $+ $calc(%resultat.de.recherche.2 + %resultat.de.recherche) %fichier.texte $1- }
  • }
  • else {
  • inc %resultat.de.recherche 1
  • if (%lignee == z) && (%fichier.texte) { set %lignee 0 | inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- }
  • elseif (%lignee) && (%fichier.texte) { inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- }
  • elseif (%fichier.texte) && (!%lignee) { write -l $+ %resultat.de.recherche %fichier.texte $1- }
  • }
  • }
  • alias pppaaahhh dialog -m pppaaahhh pppaaahhh
  • dialog pppaaahhh {
  • title "Recherche by pppaaahhh"
  • size -1 -1 241 128
  • option dbu
  • box "Options de recherche", 1, 8 8 226 58
  • check "Rechercher uniquement dans le dossier selectionné", 2, 80 32 138 10
  • radio "Les 2", 3, 16 48 34 10
  • radio "Fichiers", 4, 16 16 50 10
  • radio "Dossiers", 5, 16 32 50 10
  • button "Rechercher dans ...", 6, 88 16 61 12
  • check "Activer la recherche sur tous les disques et partitions", 9, 80 48 138 10
  • edit "", 10, 16 80 90 10, autohs
  • button "Lancer la recherche", 11, 16 112 93 12, result
  • box "Fichier ou dossier à rechercher", 14, 8 72 106 26
  • edit "", 7, 128 80 98 10, autohs
  • box "Commande(s) sur < (remplace $1-)", 13, 120 72 114 26
  • box "Sauvegarder résultat dans un fichier", 8, 120 104 114 20
  • edit "", 12, 128 112 98 10, autohs
  • edit "", 15, 152 16 50 10, autohs
  • check "", 16, 176 93 4 4
  • button "Fermer", 17, 40 100 37 8, cancel
  • }
  • on *:dialog:pppaaahhh:sclick:*:{
  • if ($did == 2) { if $did(2).state == 1 { set %uniquement.dans.dossier a }
  • else { unset %uniquement.dans.dossier }
  • }
  • if ($did == 9) { if $did(9).state == 1 { /did -o pppaaahhh 15 1 *:\ }
  • else { /did -o pppaaahhh 15 1 $null }
  • }
  • if ($did == 4) { if $did(4).state == 1 { unset %dossierrrr | unset %les.2 }
  • else { }
  • }
  • if ($did == 5) { if $did(5).state == 1 { set %dossierrrr d | unset %les.2 }
  • else { unset %dossierrrr }
  • }
  • if ($did == 3) { if $did(3).state == 1 { set %les.2 tu | unset %dossierrrr }
  • else { unset %les.2 }
  • }
  • if ($did == 6) { /did -o pppaaahhh 15 1 $sdir(c:,Selectionnez le dossier ou disque de recherche)
  • /did -u pppaaahhh 9
  • }
  • if ($did == 16) { if ($did(16).state == 1) { /did -n pppaaahhh 7 }
  • else { /did -m pppaaahhh 7 | /did -r pppaaahhh 7 | /unset %coommandes }
  • }
  • if ($did == 11) { if (!%uniquement.dans.dossier) && (!%dossierrrr) && (!%les.2) { var %varrr %fichier.a.rechercher $+ > $+ $did(pppaaahhh,15) $+ %fiiijj $+ %coommandes }
  • else { var %varrr / $+ %dossierrrr $+ %les.2 $+ %uniquement.dans.dossier %fichier.a.rechercher $+ > $+ $did(pppaaahhh,15) $+ %fiiijj $+ %coommandes }
  • /rch %varrr
  • }
  • if ($did == 17) { dialog -x pppaaahhh }
  • }
  • on *:dialog:pppaaahhh:edit:*:{
  • if ($did == 10) { set %fichier.a.rechercher $did(10) }
  • if ($did == 7) { if (!$did(7)) { set %coommandes $did(7) }
  • else { set %coommandes ? $+ $did(7) }
  • }
  • if ($did == 12) { set %fiiijj > $+ $did(12) }
  • }
  • on *:dialog:pppaaahhh:init:0: {
  • unset %coommandes | unset %fichier.a.rechercher | unset %fiiijj | unset %dossierrrr | unset %les.2 | unset %uniquement.dans.dossier | unset %element.a.chercher | unset %dossier.de.recherche | unset %element2.a.chercher | unset %resultat.de.recherche | unset %resultat.de.recherche.2
  • /did -m pppaaahhh 7
  • }
  • on *:dialog:pppaaahhh:close:0: {
  • unset %coommandes | unset %fichier.a.rechercher | unset %fiiijj | unset %dossierrrr | unset %les.2 | unset %uniquement.dans.dossier | unset %element.a.chercher | unset %dossier.de.recherche | unset %element2.a.chercher | unset %resultat.de.recherche | unset %resultat.de.recherche.2
  • }
  • menu status,menubar,channel {
  • cd by pppaaahhh
  • .Dialogue de recherche { pppaaahhh }
  • .Aide { aideeeu }
  • .Commandes { commandeeeus }
  • }
  • alias aideeeu {
  • window -aek @dir
  • echo 8 @dir $str(_,65)
  • echo 8 @dir Pour lancer le dialogue, faites /pppaaahhh
  • echo 8 @dir $str(_,65)
  • echo 7 @dir Utilisez /cd c:\Program Files par exemple pour voir le contenu de c:\Program Files (dossiers et fichiers), vous pouvez ensuite copier le chemin complet d'un fichier dans la fenetre @dir avec le bouton gauche de la souris, puis tapper /run (coller le contenu copié (ctrl+V)) pour lancer le fichier, ou refaire un /cd sur un chemin copié .
  • echo 6 @dir $str(_,65)
  • echo 5 @dir Utilisez /rch *.wav>c:\musique\ par exemple pour chercher tout les wav dans le dossier musique, ou /rch explorer.exe>c: pour rechercher explorer.exe sur le disque c; la recherche peut se faire sur toutes les lettres de disque (lecteur, disque dur ...); le caractere * peut remplacer le debut d'un nom de fichier, la fin, ou les deux , ainsi le script recherchera tous les noms de fichier contenant la chaine entre les deux * .
  • echo 4 @dir $str(_,65)
  • echo 2 @dir Utilisez /rch /d system*>c: par exemple ici pour chercher tous les dossiers commençant par system ; pour lister tous les dossiers du disque c: , faites /rch /d *>c: , idem pour les fichiers (/rch *>c:) . Pour stocker le resultat dans un fichier, faites par exemple /rch /d musique*>c:>liste.txt , par défaut, le fichier se trouvera dans le dossier de mirc, sinon spécifiez un chemin complet .
  • echo 6 @dir $str(_,65)
  • echo 10 @dir Pour ne faire la recherche que dans le dossier, et pas dans les sous-dossiers, rajouter /a . Exemple: /rch /da *>c: pour lister les dossiers de c: sans lister les sous-dossiers; pour les fichiers c'est /rch /a *.mp3>c: ; pour faire la recherche sur les fichiers ET les dossiers, c l'argument /tu, par exemple /rch /tu *mirc*>c: ;
  • echo 6 @dir $str(_,65)
  • echo 10 @dir Pour faire la recherche sur tous les disques et toutes les partitions, faites par exemple /rch *.mp3>*:\Musique>truc.txt ; les arguments /d /a /ad sont toujours valable;;; evitez de chercher tous les fichiers de tous les disques et de les ranger dans un fichier texte (/rcht *>*>liste.txt) ,sinon ya un freez de quelques minute (selon la taille et l'espace utilisé de vos disques);
  • echo 6 @dir $str(_,65)
  • echo 2 @dir Pour lancer une commande sur chaque resultat trouvé, faites par exemple /rch newmsg.wav>c:?/run < ,< remplace en fait l'élément recherché; ici newmsg.wav se lancera dés qu'il sera trouvé; vous pouvez toujours utiliser les arguments, et enregistrer dans un txt les resultats, et mettre à la fin une commande; c le ? qui indique qu'il ya une commande aprés; les commandes sont celles de mirc;
  • echo 6 @dir $str(_,65)
  • echo 10 @dir Pour lancer le dialogue, faites /pppaaahhh
  • }
  • alias commandeeeus {
  • window -aek @dir
  • echo 6 @dir $str(_,65)
  • echo 7 @dir /pppaaahhh :Pour lancer le dialogue
  • echo 7 @dir /cd directory :Voir les dossiers et fichiers dans un repertoire .
  • echo 6 @dir _
  • echo 3 @dir /rch /argument(s) fichier_à_chercher_(argument /d pour les dossiers)>directory>fichier.txt?/commande < :Chercher un fichier ou dossier dans directory , et mettre le résultat dans un fichier texte (pas obligatoire), et lancer une commande sur <, qui remplace le ou les fichiers ou dossiers trouvés . Si * remplace la lettre de disque(/rch *.wav>*:\musique), alors la recherche se fait sur tous les disques et partitions, de meme pour les fichiers (/rch *>c: ou /rch /d *>c:).
  • echo 6 @dir _
  • echo 6 @dir Liste arguments :
  • echo 6 @dir /d : recherche sur les dossiers de directory . /da recherche sur les dossiers mais pas les sous-dossiers de directory . Si pas d'arguments, recherche sur les fichiers de directory, et si /a , recherche sur les fichiers de directory mais pas dans ses sous-dossiers . /tu recherche sur les fichiers ET les dossiers .
  • echo 6 @dir $str(_,65)
  • }
  • on *:load: { pppaaahhh }
alias cd { 
  window -aek @dir 
  var %pathh $1- 

  if (!%pathh) { commandeeeus | halt } 

  echo @dir $str(_,65) 
  echo 1 @dir Dossier(en bleu) et fichier(en vert) contenus dans $1- 

  $finddir($null,$null,$null,$finddir(%pathh,*,0,1,echo 2 @dir $1- )) 
  $findfile($null,$null,$null,$findfile(%pathh,*,0,1,echo 3 @dir $1- )) 

  echo 7 @dir $str(_,65) 
} 

alias rch { 
  unset %resultat.de.recherche 
  unset %resultat.de.recherche.2 
  unset %couleur 
  unset %fichier.texte 
  unset %deuxxx 
  unset %doss 
  unset %fich 
  unset %commmande 
  unset %dossier.de.recherche 
  unset %element.a.chercher 
  unset %arborescence 

  window -aek @dir 
  if (* isin $gettok($gettok($1-,2,62),1,92)) { /rcht $1- | halt } 
  else { 
    if (? isin $1-) { set %commmande $gettok($1-,2,63) } 
    if (/ isin $1) && (: !isin $1) && (!%commmande) { set %dossier.de.recherche $gettok($2-,2,62) | set %element.a.chercher $gettok($2-,1,62) } 
    elseif (/ isin $1) && (: !isin $1) && (%commmande) { 
      if (? isin $gettok($2-,2,62)) { set %dossier.de.recherche $gettok($gettok($2-,2,62),1,63) | set %element.a.chercher $gettok($2-,1,62) } 
      else { set %dossier.de.recherche $gettok($2-,2,62) | set %element.a.chercher $gettok($2-,1,62) } 
    } 
    elseif (!%commmande) { set %dossier.de.recherche $gettok($1-,2,62) | set %element.a.chercher $gettok($1-,1,62) } 
    elseif (%commmande) { 
      if (? isin $gettok($1-,2,62)) { set %dossier.de.recherche $gettok($gettok($1-,2,62),1,63) | set %element.a.chercher $gettok($1-,1,62) } 
      else { set %dossier.de.recherche $gettok($1-,2,62) | set %element.a.chercher $gettok($1-,1,62) } 
    } 

    if ((/a isin $1) || (/da isin $1) || (/tua isin $1) || (/atu isin $1)) { var %arborescence 1 } 
    else { var %arborescence 100 } 

    set %resultat.de.recherche 0 
    set %resultat.de.recherche.2 0 
    set %fichier.texte $gettok($gettok($1-,1,63),3,62) 

    if (!%dossier.de.recherche) || (!$regex($1-,:)) || (!$regex($1-,>)) || (!%element.a.chercher) { 
      commandeeeus 
      halt 
    } 

    echo @dir $str(_,65) 
    echo 12 @dir Recherche en cours ... 

    if ((/d isin $1) || (/ad isin $1)) { 
      set %couleur 2 
      $finddir($null,$null,$null,$finddir(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- )) 
      echo 10 @dir Recherche terminée 
      echo 7 @dir %resultat.de.recherche dossiers trouvé(s) pour %element.a.chercher dans %dossier.de.recherche 
      echo 7 @dir $str(_,65) 
      if (%resultat2 == Recherche terminée sans résultat sur tous les disques) && (%resultat.de.recherche != 0) { set %resultat2 $null | set %resultat2 %resultat.de.recherche dossiers(s) trouvé(s) dans %dossier.de.recherche ; | set %doss %element.a.chercher } 
      elseif (%resultat2) && (%resultat.de.recherche != 0) { set %resultat2 %resultat2 %resultat.de.recherche dossiers(s) trouvé(s) dans %dossier.de.recherche ; } 
      unset %couleur 
      unset %fichier.texte 
      unset %commmande 
    } 
    elseif ((/tu isin $1) || (/tua isin $1) || (/atu isin $1)) { 
      set %deuxxx 1 
      set %couleur 2 
      set %element2.a.chercher %element.a.chercher 
      $finddir($null,$null,$null,$finddir(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- )) 
      set %deuxxx 2 
      set %couleur 3 
      $findfile($null,$null,$null,$findfile(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- )) 
      echo 10 @dir Recherche terminée 
      echo 7 @dir %resultat.de.recherche fichier(s) trouvé(s) pour %element.a.chercher dans %dossier.de.recherche 
      echo 7 @dir %resultat.de.recherche.2 dossier(s) trouvé(s) pour %element.a.chercher dans %dossier.de.recherche 
      echo 7 @dir $str(_,65) 
      if (%resultat2 == Recherche terminée sans résultat sur tous les disques) && ((%resultat.de.recherche != 0) || (%resultat.de.recherche.2 != 0)) { set %resultat2 $null | set %resultat2 %resultat.de.recherche fichier(s) et %resultat.de.recherche.2 dossier(s) trouvé(s) dans %dossier.de.recherche ; } 
      elseif (%resultat2) && ((%resultat.de.recherche != 0) || (%resultat.de.recherche.2 != 0)) { set %resultat2 %resultat2 %resultat.de.recherche fichier(s) et %resultat.de.recherche.2 dossier(s) trouvé(s) dans %dossier.de.recherche ; } 
      unset %couleur 
      unset %fichier.texte 
      unset %commmande 

    } 

    else { 
      set %couleur 3 
      $findfile($null,$null,$null,$findfile(%dossier.de.recherche,%element.a.chercher,0,%arborescence,resultatt $1- )) 
      echo 10 @dir Recherche terminée 
      echo 7 @dir %resultat.de.recherche fichier(s) trouvé(s) pour %element.a.chercher dans %dossier.de.recherche 
      echo 7 @dir $str(_,65) 
      if (%resultat2 == Recherche terminée sans résultat sur tous les disques) && (%resultat.de.recherche != 0) { set %resultat2 $null | set %resultat2 %resultat.de.recherche fichier(s) trouvé(s) dans %dossier.de.recherche ; | set %fich %element.a.chercher } 
      elseif (%resultat2) && (%resultat.de.recherche != 0) { set %resultat2 %resultat2 %resultat.de.recherche fichier(s) trouvé(s) dans %dossier.de.recherche ; } 
      unset %couleur 
      unset %fichier.texte 
      unset %commmande 
    } 
  } 
} 
alias rcht { 
  var %diskk 65 
  set %resultat2 Recherche terminée sans résultat sur tous les disques 
  set %lignee z 

  while (%diskk < 91) { 
    rch $puttok($1-,$chr(%diskk) $+ : $+ \ $+ $deltok($gettok($1-,2,62),1,92),2,62) 
    inc %diskk 1 
  } 
  echo 10 @dir Recherche terminée 
  if (%fich) { echo 7 @dir Resultat pour %fich : } 
  elseif (%doss) { echo 7 @dir Resultat pour %doss : } 
  elseif (%deuxxx == 2) { echo 7 @dir Resultat pour %element2.a.chercher : | echo 7 @dir %resultat2 | unset %resultat2 | unset %lignee | unset %deuxxx | unset %element2.a.chercher | halt } 
  echo 7 @dir %resultat2 
  unset %resultat2 
  unset %fich 
  unset %doss 
  unset %lignee 
  unset %deuxxx 
  unset %commmande 
} 

alias resultatt { 
  echo %couleur @dir $1- 
  if (%commmande) { var %commmm $shortfn($1-) | $replace(%commmande,<,%commmm) } 
  if (%deuxxx == 1) { 
    inc %resultat.de.recherche.2 1 
    if (%lignee == z) && (%fichier.texte) { set %lignee 0 | inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- } 
    elseif (%lignee) && (%fichier.texte) { inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- } 
    elseif (%fichier.texte) && (!%lignee) { write -l $+ %resultat.de.recherche.2 %fichier.texte $1- } 
  } 
  elseif (%deuxxx == 2) { 
    inc %resultat.de.recherche 1 
    if (%lignee == z) && (%fichier.texte) { set %lignee 0 | inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- } 
    elseif (%lignee) && (%fichier.texte) { inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- } 
    elseif (%fichier.texte) && (%resultat.de.recherche) { write -l $+ $calc(%resultat.de.recherche.2 + %resultat.de.recherche) %fichier.texte $1- } 
  } 
  else { 
    inc %resultat.de.recherche 1 
    if (%lignee == z) && (%fichier.texte) { set %lignee 0 | inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- } 
    elseif (%lignee) && (%fichier.texte) { inc %lignee 1 | write -l $+ %lignee %fichier.texte $1- } 
    elseif (%fichier.texte) && (!%lignee) { write -l $+ %resultat.de.recherche %fichier.texte $1- } 
  } 
} 

alias pppaaahhh dialog -m pppaaahhh pppaaahhh 

dialog pppaaahhh { 
  title "Recherche by pppaaahhh" 
  size -1 -1 241 128 
  option dbu 
  box "Options de recherche", 1, 8 8 226 58 
  check "Rechercher uniquement dans le dossier selectionné", 2, 80 32 138 10 
  radio "Les 2", 3, 16 48 34 10 
  radio "Fichiers", 4, 16 16 50 10 
  radio "Dossiers", 5, 16 32 50 10 
  button "Rechercher dans ...", 6, 88 16 61 12 
  check "Activer la recherche sur tous les disques et partitions", 9, 80 48 138 10 
  edit "", 10, 16 80 90 10, autohs 
  button "Lancer la recherche", 11, 16 112 93 12, result 
  box "Fichier ou dossier à rechercher", 14, 8 72 106 26 
  edit "", 7, 128 80 98 10, autohs 
  box "Commande(s) sur < (remplace $1-)", 13, 120 72 114 26 
  box "Sauvegarder résultat dans un fichier", 8, 120 104 114 20 
  edit "", 12, 128 112 98 10, autohs 
  edit "", 15, 152 16 50 10, autohs 
  check "", 16, 176 93 4 4 
  button "Fermer", 17, 40 100 37 8, cancel 
} 
on *:dialog:pppaaahhh:sclick:*:{ 
  if ($did == 2) { if $did(2).state == 1 { set %uniquement.dans.dossier a } 
    else { unset %uniquement.dans.dossier } 
  }
  if ($did == 9) { if $did(9).state == 1 { /did -o pppaaahhh 15 1 *:\ } 
    else { /did -o pppaaahhh 15 1 $null } 
  } 
  if ($did == 4) { if $did(4).state == 1 { unset %dossierrrr | unset %les.2 } 
    else { } 
  } 
  if ($did == 5) { if $did(5).state == 1 { set %dossierrrr d | unset %les.2 } 
    else { unset %dossierrrr } 
  } 
  if ($did == 3) { if $did(3).state == 1 { set %les.2 tu | unset %dossierrrr } 
    else { unset %les.2 } 
  } 
  if ($did == 6) { /did -o pppaaahhh 15 1 $sdir(c:,Selectionnez le dossier ou disque de recherche) 
    /did -u pppaaahhh 9 
  } 
  if ($did == 16) { if ($did(16).state == 1) { /did -n pppaaahhh 7 } 
    else { /did -m pppaaahhh 7 | /did -r pppaaahhh 7 | /unset %coommandes } 
  } 
  if ($did == 11) { if (!%uniquement.dans.dossier) && (!%dossierrrr) && (!%les.2) { var %varrr %fichier.a.rechercher $+ > $+ $did(pppaaahhh,15) $+ %fiiijj $+ %coommandes } 
    else { var %varrr / $+ %dossierrrr $+ %les.2 $+ %uniquement.dans.dossier %fichier.a.rechercher $+ > $+ $did(pppaaahhh,15) $+ %fiiijj $+ %coommandes } 
    /rch %varrr 
  } 
  if ($did == 17) { dialog -x pppaaahhh }
}

on *:dialog:pppaaahhh:edit:*:{ 
  if ($did == 10) { set %fichier.a.rechercher $did(10) } 
  if ($did == 7) { if (!$did(7)) { set %coommandes $did(7) } 
    else { set %coommandes ? $+ $did(7) } 
  } 
  if ($did == 12) { set %fiiijj > $+ $did(12) }
} 

on *:dialog:pppaaahhh:init:0: { 
  unset %coommandes | unset %fichier.a.rechercher | unset %fiiijj | unset %dossierrrr | unset %les.2 | unset %uniquement.dans.dossier | unset %element.a.chercher | unset %dossier.de.recherche | unset %element2.a.chercher | unset %resultat.de.recherche | unset %resultat.de.recherche.2 
  /did -m pppaaahhh 7 
} 
on *:dialog:pppaaahhh:close:0: { 
  unset %coommandes | unset %fichier.a.rechercher | unset %fiiijj | unset %dossierrrr | unset %les.2 | unset %uniquement.dans.dossier | unset %element.a.chercher | unset %dossier.de.recherche | unset %element2.a.chercher | unset %resultat.de.recherche | unset %resultat.de.recherche.2 
} 
menu status,menubar,channel { 
  cd by pppaaahhh 
  .Dialogue de recherche { pppaaahhh } 
  .Aide { aideeeu } 
  .Commandes { commandeeeus } 
} 

alias aideeeu { 
  window -aek @dir 
  echo 8 @dir $str(_,65) 
  echo 8 @dir Pour lancer le dialogue, faites /pppaaahhh 
  echo 8 @dir $str(_,65) 
  echo 7 @dir Utilisez /cd c:\Program Files par exemple pour voir le contenu de c:\Program Files (dossiers et fichiers), vous pouvez ensuite copier le chemin complet d'un fichier dans la fenetre @dir avec le bouton gauche de la souris, puis tapper /run (coller le contenu copié (ctrl+V)) pour lancer le fichier, ou refaire un /cd sur un chemin copié . 
  echo 6 @dir $str(_,65) 
  echo 5 @dir Utilisez /rch *.wav>c:\musique\ par exemple pour chercher tout les wav dans le dossier musique, ou /rch explorer.exe>c: pour rechercher explorer.exe sur le disque c; la recherche peut se faire sur toutes les lettres de disque (lecteur, disque dur ...); le caractere * peut remplacer le debut d'un nom de fichier, la fin, ou les deux , ainsi le script recherchera tous les noms de fichier contenant la chaine entre les deux * . 
  echo 4 @dir $str(_,65) 
  echo 2 @dir Utilisez /rch /d system*>c: par exemple ici pour chercher tous les dossiers commençant par system ; pour lister tous les dossiers du disque c: , faites /rch /d *>c: , idem pour les fichiers (/rch *>c:) . Pour stocker le resultat dans un fichier, faites par exemple /rch /d musique*>c:>liste.txt , par défaut, le fichier se trouvera dans le dossier de mirc, sinon spécifiez un chemin complet . 
  echo 6 @dir $str(_,65) 
  echo 10 @dir Pour ne faire la recherche que dans le dossier, et pas dans les sous-dossiers, rajouter /a . Exemple: /rch /da *>c: pour lister les dossiers de c: sans lister les sous-dossiers; pour les fichiers c'est /rch /a *.mp3>c: ; pour faire la recherche sur les fichiers ET les dossiers, c l'argument /tu, par exemple /rch /tu *mirc*>c: ; 
  echo 6 @dir $str(_,65) 
  echo 10 @dir Pour faire la recherche sur tous les disques et toutes les partitions, faites par exemple /rch *.mp3>*:\Musique>truc.txt ; les arguments /d /a /ad sont toujours valable;;; evitez de chercher tous les fichiers de tous les disques et de les ranger dans un fichier texte (/rcht *>*>liste.txt) ,sinon ya un freez de quelques minute (selon la taille et l'espace utilisé de vos disques); 
  echo 6 @dir $str(_,65) 
  echo 2 @dir Pour lancer une commande sur chaque resultat trouvé, faites par exemple /rch newmsg.wav>c:?/run < ,< remplace en fait l'élément recherché; ici newmsg.wav se lancera dés qu'il sera trouvé; vous pouvez toujours utiliser les arguments, et enregistrer dans un txt les resultats, et mettre à la fin une commande; c le ? qui indique qu'il ya une commande aprés; les commandes sont celles de mirc; 
  echo 6 @dir $str(_,65) 
  echo 10 @dir Pour lancer le dialogue, faites /pppaaahhh 
} 
alias commandeeeus { 
  window -aek @dir 
  echo 6 @dir $str(_,65) 
  echo 7 @dir /pppaaahhh :Pour lancer le dialogue 
  echo 7 @dir /cd directory :Voir les dossiers et fichiers dans un repertoire . 
  echo 6 @dir _ 
  echo 3 @dir /rch /argument(s) fichier_à_chercher_(argument /d pour les dossiers)>directory>fichier.txt?/commande < :Chercher un fichier ou dossier dans directory , et mettre le résultat dans un fichier texte (pas obligatoire), et lancer une commande sur <, qui remplace le ou les fichiers ou dossiers trouvés . Si * remplace la lettre de disque(/rch *.wav>*:\musique), alors la recherche se fait sur tous les disques et partitions, de meme pour les fichiers (/rch *>c: ou /rch /d *>c:). 
  echo 6 @dir _ 
  echo 6 @dir Liste arguments : 
  echo 6 @dir /d : recherche sur les dossiers de directory . /da recherche sur les dossiers mais pas les sous-dossiers de directory . Si pas d'arguments, recherche sur les fichiers de directory, et si /a , recherche sur les fichiers de directory mais pas dans ses sous-dossiers . /tu recherche sur les fichiers ET les dossiers . 
  echo 6 @dir $str(_,65) 
} 
on *:load: { pppaaahhh }

Conclusion

Copiez juste le script et ajouter le a votre mirc;
Pour lancer le dialogue de recherche, tapper /pppaaahhh
Pour lister les commandes disponible, tapper /cd ou /rch
 

Historique

10 janvier 2005 11:28:55 :
demande de commentaires et conseils pour le code
10 janvier 2005 21:14:57 :
changement des if/goto en while optimisation des variables
10 janvier 2005 21:17:47 :
(!var)
11 janvier 2005 16:17:41 :
utilisation des commandes dans $findfile et $finddir ($finddir(dir,wildcard,N,depth,@window | command ...)
11 janvier 2005 17:15:40 :
($var != $null) en ($var)
11 janvier 2005 17:21:16 :
changement de ($var != $null) en ($var) " (/commande) en (commande)
11 janvier 2005 17:28:16 :
..
14 janvier 2005 16:36:12 :
optimisation de la boucle $finddir et $findfile option de recherche de fichiers ou dossiers
14 janvier 2005 16:38:23 :
..
14 janvier 2005 16:56:25 :
..
14 janvier 2005 19:29:46 :
Le résultat s'affiche maintenant dans une window
14 janvier 2005 19:46:59 :
.
14 janvier 2005 20:55:27 :
correction d'un bug
15 janvier 2005 22:11:55 :
Dialogue de recherche recherche possible sur les fichiers ET les dossiers option qui permet de lancer une commande sur chaque resultat trouvé .
15 janvier 2005 22:14:29 :
..
15 janvier 2005 23:45:02 :
;;
16 janvier 2005 00:01:20 :
;;
20 janvier 2005 19:51:14 :
bug du bouton fermer
05 février 2005 12:49:46 :
0
22 avril 2005 12:21:14 :
capture jpg
25 mai 2005 10:51:06 :
regroupement des évènements de dialogs

Commentaires et avis

signaler à un administrateur
Commentaire de PaDa le 10/01/2005 12:49:18

Voila une première source très originale !
Quelques remarques au niveau du code : les slashs ne sont pas obligatoires (/hfree -> hfree) et préfère les while aux goto (les habituelles discussions idéologiques n'ont pas forcément lieu d'être, mais c'est plus lisible en général avec des while)
en gros :

:mark
comandes
if (condition) { goto mark }

revient a

while (condition) {
commandes
}

je teste pas je le ferai quand tu auras remis de l'ordre dans le code ^^

bonne continuation en tout cas

signaler à un administrateur
Commentaire de COOLMAN002 le 10/01/2005 18:51:43

echo -s _________________________________________________________________
< en plus court >
echo -s $str(_,65)
--
if (%pathh != $null) {
< devient >
if (%pathh) {
--
if (%fichierr < 176) && (%fichierr != 97) && (%fichierr != 42) && (%fichierr != 33) && (%fichierr != 34) && (%fichierr != 47) && (%fichierr != 58) && (%fichierr != 60) && (%fichierr != 62) && (%fichierr != 63) && (%fichierr != 92) {

à la limite ici, créer une variable qui contient 97,42,33,34,47,58,60,62,63,92
et mets:
if (%ficher < 176) && (!$istok(%VARIABLE,%fichierr,44)) {
--
elseif ($hget(arbo,1) == $null) && (%vide == $null) {
< devient >
elseif (!$hget(arbo,1)) && (!%vide) {

signaler à un administrateur
Commentaire de PaDa le 10/01/2005 20:19:41

(%vide == $null) et  (!%vide) ne sont pas équivalents
en l'occurence ici ca crée peut être des soucis ton "optimisation" : %vide est initialisée à 0, j'ai pas lu la suite, mais %vide == $null ne sera pas vrai, et !%vide le sera...
tention vilain ! :)

signaler à un administrateur
Commentaire de pppaaahhh le 10/01/2005 21:11:42

Merci merci pour votre aide; g changé les if goto en while (merci beaucoup PaDa), et puis merci coolman002 pour ton aide, je connaissais pas ces astuces ;)
Là, j'aimerais joindre les deux boucles while $finddir et $findfile, ça m'a l'air à portée de main, mais je coince ..

signaler à un administrateur
Commentaire de KiNdErMaXi le 10/01/2005 21:33:33

c'est très bien de classer dans l'ordre alphabétique est par type (dossier ou fichier)
pourquoi ne pas classer les fichiers par type aussi ??
et j'aurai plus vu les echo dans une @window ou que cela retranscrive tout dans un .txt pour pouvoir faire une recherche de fichier a l'aide de write -s
je m'emballe peut etre un peu la :x
bonne continuation

signaler à un administrateur
Commentaire de SornDrixer le 11/01/2005 07:08:56 administrateur CS

Tu te rends compte le nombre de fois que tu utilises $findfile dans la même boucle ?
$findfile est à lui seul une boucle, donc appelle le qu'une fois et tu stock se qu'il retourne quelque part.

signaler à un administrateur
Commentaire de SornDrixer le 11/01/2005 07:09:41 administrateur CS

Pareil pour $finddir que je viens de voir.

signaler à un administrateur
Commentaire de vpcorpprog le 11/01/2005 09:08:46

Super et jamais vu 8,0/10

signaler à un administrateur
Commentaire de pppaaahhh le 11/01/2005 16:22:16

Merci SornDrixer je viens de corriger ça, et en effet la recherche se fait deux fois plus rapidement, merci ::))
j'avais pas utilisé la commande disponible a la fin d'un $finddir ou du $findfile

signaler à un administrateur
Commentaire de KiNdErMaXi le 11/01/2005 16:59:52

le 4/10 n'est vraiment pas mérité je trouve.
Que celui qui a mis une si mauvaise note donne des raisons c'est la moindre des choses

signaler à un administrateur
Commentaire de PaDa le 11/01/2005 18:46:15

lol,t'as pas connu ca mais avant régulièrement des blaireaux venaient pourrir les notes ici sans raison. de toute facon ce système de notation ca fait des mois (années?) que certains demandent qu'il soit revu, notamment parce que les moyennes qui sortent n'en sont pas...
bref faut pas faire attention, j'dis ca aussi a l'attention des débutants, c'est pas parce que votre addon est mal noté que vous avez pas eu un 8 ou un 9 dans le tas...

signaler à un administrateur
Commentaire de JulioDelphi le 11/01/2005 18:56:48 administrateur CS

PaDa : ce n'était sans compter sur moi :)
en tout c'est vrai que "avant" ça arrivait mais les "mauvais noteurs", ceux ki notent des 1/10 pour le "fun" sont prévenus par MP des règles à respecter et de la bonne ambiance a garder sur les reseaux c-s. ; la note supprimée et si recidive le ban peut venir sur le coin de la tronche :)
je suis d'accord que les 1/10 soit postés mais un commentaire est effectivement le bienvenue pour "expliquer" je dirais cette note basse, surtout quand les autres notent bien, on s'etonne d'un 1/10 !
J'ai l'oeil la dessus chaque jour, je vous bichonne :p Bonne soirée !

signaler à un administrateur
Commentaire de PaDa le 11/01/2005 19:21:20

okay no pb
d'autant plus que c'est facile a lire le mirc, autant laisser un comment de qq lignes pour expliquer... Avis a toi qui ne t'est pas dénoncé =)

signaler à un administrateur
Commentaire de abdoulax le 11/01/2005 21:02:41

LOL c moi le looser !!!!

signaler à un administrateur
Commentaire de PaDa le 11/01/2005 21:08:17

vilain explique !
allez op op op !

signaler à un administrateur
Commentaire de abdoulax le 12/01/2005 10:57:14

Ca me saoul les source sur noté !!!!

signaler à un administrateur
Commentaire de pppaaahhh le 14/01/2005 16:43:12

J'ai ajouté une option de recherche de fichiers et dossiers, avec possibilité de rechercher sur tous les disques et partitions, pour toi kindermaxi ;;)

signaler à un administrateur
Commentaire de pppaaahhh le 14/01/2005 16:46:19

et puis maintenant il est possible de retourner le resultat dans un fichier----->voir les commandes (/cd)
Par contre c toujours aussi austère :( , il faut que je potasse les window et autre outils graphique

signaler à un administrateur
Commentaire de KiNdErMaXi le 14/01/2005 17:58:54

bin voila tout ca dans une petite @win et c'est parfais ( je suis chiant mais j'ai bien avoir ma fenetre de serveur clean :x)
bravo pppaaahhh ;)

signaler à un administrateur
Commentaire de pppaaahhh le 14/01/2005 18:03:56

vi kinder ;;) faut que je specifie un gros buffer pour la window, et pi je mets ça en ligne

signaler à un administrateur
Commentaire de pppaaahhh le 14/01/2005 19:32:08

voila c fait; merci kinder :)

signaler à un administrateur
Commentaire de J4Gu4R le 14/01/2005 21:17:41

on peux dire que quand tu fais une source tu lache pas jusqu'à ce qu'elle soit bien !!

c une qualité j'dois dire, même moi j'ai des truc en cours depuis trop longtemps ( la flême) :x

bonne continuation...

-J4Gu4R-

signaler à un administrateur
Commentaire de pppaaahhh le 14/01/2005 21:19:57

merci J4Gu4R;;;;

signaler à un administrateur
Commentaire de KiNdErMaXi le 14/01/2005 23:41:31

cette source était chouette au départ bah la !! que dire ?!
bravo :)

signaler à un administrateur
Commentaire de pppaaahhh le 15/01/2005 00:46:30

merci kinder :::)))

signaler à un administrateur
Commentaire de pppaaahhh le 15/01/2005 00:49:59

vé qd meme rajouter un chti dialog pour faire zoli lol

signaler à un administrateur
Commentaire de KiNdErMaXi le 15/01/2005 13:25:34

oh non pas de dialog !! ca sert a rien :o(

signaler à un administrateur
Commentaire de pppaaahhh le 15/01/2005 18:17:39

ba si c'est mieux pour pas se faire chier à tout tapper; mais tout restera accessible en ligne de commande :p

signaler à un administrateur
Commentaire de KiNdErMaXi le 15/01/2005 19:52:55

dommage ...

signaler à un administrateur
Commentaire de pppaaahhh le 15/01/2005 22:16:53

voila j'espère que y'a pas trop de bug

signaler à un administrateur
Commentaire de KiNdErMaXi le 16/01/2005 14:02:44

la possibiliter d'enregistrer les résultat est bien pensée !! et puis on peut faire une recherche du genre *.*mp3 ce qui est plutot interressant ;)
17 maj lol
encore bravo :oP

signaler à un administrateur
Commentaire de pppaaahhh le 17/01/2005 18:30:48

merci kinder

signaler à un administrateur
Commentaire de nightmar le 20/01/2005 00:45:29

Très original est très bien codé : 9/10
Bonne continuation =)

signaler à un administrateur
Commentaire de pppaaahhh le 20/01/2005 02:07:14

mici nightmare *

signaler à un administrateur
Commentaire de the_gro_chacal le 20/01/2005 18:51:15

Jamais vu, trés beau travail :: 8/10

signaler à un administrateur
Commentaire de abdoulax le 20/01/2005 19:12:06

Franchement maintenant je trouve que ça mérite sa note !!
Cependant il reste des bugs :
- Déjà quand j'ai ouvert le dialog une erreur, car il n'y a pas de button valider ou annuler, pour le résoudre aller à la ligne 172 et mettre -> button "Fermer", 17, 40 100 37 8,cancel
- Ensuite y à des petit bug d'affichage dans Commandes... ( ms ça c pas tro grave !!! )
- Enfin le gros problème c'est que lorsque j'ai lancé la recherche mon mirc à planté....

Mise à par ces détails, c'est du bon travail !!

Have fun

signaler à un administrateur
Commentaire de pppaaahhh le 20/01/2005 19:52:09

ok abdoulax merci des conseils

signaler à un administrateur
Commentaire de MaX_62 le 24/04/2005 14:35:35

Tu peux encore supprimer les slashs.

Tu peux aussi regrouper tes évènements de dialog avec $devent et $did

unset %var1
unset %var2
unset %var3
devient unset %var1 , %var2 , %var3

Sinon je trouve que ça fait un peu beaucoup de variables, je préfère les hash tables ;)
Pas mal du tout !!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 3,99 sec