LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007
-
28 juin 2006 à 20:59
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 2010
-
16 juil. 2006 à 20:11
Bonjour,
J'ai un script qui se présente comme ceci, il me sert a lister le contenu d'un répertoire dans un fichier txt. Seulement, tester le et vous verrez que qd je fais /list.a.dir , tout desuite une fenetre se lance pour me dire quel répertoire je veux lister. Je voudrais qu'il ne me demande pas quel repertoire je veux lister, mais que par défaut, il list le e:\ avec un depth 1, ainsi, qu'il liste que les dossier a la racine de ce lecteur local et qu'il enregistre aussi le txt automatiquement dans le c:\list.txt et qu'il ne me demande pas quel nom je veux donner a ce txt. Merci de m'éclaircir les idées la dessus, je ne sais pas trop ce qu'il faut changer, et j'avoue que j'nai pas trop envie de m'aventurer la dedans, et de tout faire foirer. Merci d'avance, je ne pense pas que ca soit si difficile. Merci d'avance.
Bien cordialement
Bonne soirée
alias list.a.dir {
var %file = $file="Save List As..." C:\list.txt
%file = " $+ %file $+ "
write -c %file
var %dir = $sdir="Select directory to list. Click cancel when no more dir to add."
%dir = " $+ %dir $+ "
%depth = 0
while ( %depth != 1 && %depth != 2 ) { %depth = $$?="Enter the depth of search(1 or 2). Note that only the folders to the specified depth will be listed." }
while ( %dir != $null ) {
if ( %depth == 1 ) { echo 4 Number of Folders Listed: $finddir(%dir,*,0,%depth,write %file $nopath($1-)) }
else { echo 4 Number of Folders Listed: $finddir(%dir,*,0,1, echo 4 $finddir($1-,*,0,1, write %file $nopath($longfn($1)) ).shortfn ).shortfn }
%dir = $sdir="Select directory to list. Click cancel when no more dir to add."
%dir = " $+ %dir $+ "
%depth = 0
while ( %depth != 1 && %depth != 2 ) { %depth = $$?="Enter the depth of search(1 or 2). Note that only the folders to the specified depth will be listed." }
}
}
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 4 juil. 2006 à 17:59
Ben dans ton dossier tu connais la ligne qui peux etre succeptible d'etre presente et elle ne change jamais ? si oui bah $1 represente le repertoire donc if ($1 == taligne) {
tu devrait stocker une var sur 1 et seulement a la fin du play ( avec l'evenement on playend ) tu supprime ta ligne en cherchant le n° de la ligne qui correspond a ta ligne
//noop $read(list.txt,w,$+(*,taligne,*)) | write -dl $+ $readn list.txt
LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007 4 juil. 2006 à 20:47
Bonsoir, je ne comprends pas tout ce que tu dis wims
Dans le fichier list.txt : les lignes se présente de cette facon ex :
Ligne 1 : !test Documents_And_Settings
Imaginons, sur #channel, je fais
!test Documents_And_Settings
Le bot répond avec 5s de lag,
Documents_And_Settings allowed
Ou alors : documents_and_settings allowed ( la ca change, documents_and_settings !=== à la source Documents_And_Settings )
Imaginons, que je ne sais pas dans quelle ligne du fichier list.txt se trouve !test Documents_And_Settings
Je veux d'une facon ou d'une autre, trouver l'endroit ou se trouve Documents_And_Settings dedans, vérifier si les majuscules minuscules sotn respectées avec ( === ) , si oui, delete cette ligne.
Comment faire ? J'espere que vous comprenez ce que je veux dire, defois le bot, répond, mais le format majuscules minuscules n'est pas respecté, et il faut tenir compte de ca.
LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007 4 juil. 2006 à 21:38
quand on play list.txt, on !test plein de releases, pas qu'une seule, et Documents_And_Settings était un exemple, je vois pas en quoi il serait util dnas le code.
Tu comprends ce que je veux dire ? j'ia l'impression de vous enbrouiller
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 4 juil. 2006 à 22:02
lorsque tu play le fichier ya une ligne que tu veux supprimer ou y'en a plusieur ? est ce que tu sais laquelle c'est ? ( je croyais que ct Documents_And_Settings :\ ) sinon est ce que ya un moyen de chercher si une ligne dois etre supprimé ou pas ?
LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007 4 juil. 2006 à 22:09
le truc, c'est que je veux juste !test toutes les lignes de list.txt, et supprimer celle qui sont bonnes. et a la fin, report celle qui reste, et qui sont donc fausse, car pas allowed par le bot, ou alors, majuscule, mininuscule pas respectée. Tu vois ce que je veux dire ?
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 5 juil. 2006 à 15:43
Ben tu na copié copier le fichier obtenue apres le $finddir comme ca tu as deux fichier identique, avec un que tu va play pour ton bot, et des que ton bot te sors un "allowed"
il suffit de supprimer la ligne dans le fichier copié.Ensuite tu supprime le fichier que tu a play et tu renomme le second fichier qui contient seulement les bon repertoire avec le nom du premier fichier.
pour copier le fichier > /help /play
pour supprimer la ligne > //noop $read(fichier.txt,w,$+(*,$1,*)) cette apelle de $read s'il retourne qqch va remplir l'identifieur $readn qui retourne le numero de la ligne retourné donc il suffit de faire /write -dl $+ $readn fichier.txt
pour renommer un fichier /help /rename
LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007 5 juil. 2006 à 19:28
Bonsoir wims,
Votre message de cette apres midi, m'a beaucoup aidé. Il me reste une toute derniere chose a savoir apres j'arrete de vous embeter.
J'ai $readn = 30
Quelle est la commande, qui permet de delete la ligne $readn dans list.txt
fjxokt
Messages postés840Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 février 20091 6 juil. 2006 à 01:46
Il est impossible de déplacer un dossier en entier.
Cependant, il est possible d'arriver au même résultat en déplaçant les fichiers du premiers dossier vers le second de manière manuelle.
-Tu crées le dossier de destination s'il n'existe pas (/help /mkdir et $isdir())
-Puis tu copies (/help /rename) tes fichier du premier vers le second dossier a l'aide d'un $findfile
-Enfin, tu supprimes le premier dossier (qui est désormais vide) (/help /rmdir)
fjxokt
Messages postés840Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 février 20091 8 juil. 2006 à 02:11
On ne peux pas appeler $finfile "comme ça", utilise noop puisque ce que la fonction nous retourne ne nous interesse pas.
Apres,$findfile retourne avec $1- le chemin COMPLET vers le fichier, donc pour avoir le nouveau chemin vers ce fichier, il faut associer ton rep %destination et le nom du fichier: $+(",%destination,\,$nopath($1-),")
Au final cela donne:
alias copy.x {
var %destination = c:\TEST
var %source = d:\STUFF
mkdir %destination
noop $findfile(%source,*.*,0,1,rename $+(",$1-,") $+(",%destination,\,$nopath($1-),"))
}
Par contre tu devrais verifier que le dossier que tu crées n'existes pas déja (/help $isdir)
et aussi il faut savoir qu'on ne peut pas créer un dossier si son dossier parent existe c'est a dire que si je veux creer le dossier c:\test\test2 il faut que le dossier c:\test existe
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 10 juil. 2006 à 21:16
"et aussi il faut savoir qu'on ne peut pas créer un dossier si son dossier parent existe c'est a dire que si je veux creer le dossier c:\test\test2 il faut que le dossier c:\test existe"
Pas mal l'embrouille :p, il manque juste un "pas" apres le 1er existe ^^
LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007 12 juil. 2006 à 20:24
Bonsoir,
J'ai encore un probleme avec mon script, et oui encore :) Vous devez commencer a en avoir marre ...
Voici comment se présente mon code :
alias copy.x {
var %destination = c:\TEST
var %source = d:\STUFF
mkdir %destination
noop $findfile(%source,*.*,0,1,rename $+(",$1-,") $+(",%destination,\,$nopath($1-),"))
}
Imaginons que maintenant, j'ai plusieurs dossier dans %source
Je voudrais que ca les créer dans %destination
Et qu'ensuite ca copie tous les fichier dans chaques dossiers de %source et que ca les mette dans leurs dossiers respectifs dans %destination.
Est-ce faisable ? Il faut utiliser $finddir ?