#! /opt/Xed/srexx /***************************************************************/ /* */ /* getcd.rex - (gH) 1997 : */ /* */ /* +================================================+ */ /* + + */ /* + récupération automatique du repertoire + */ /* + + */ /* +================================================+ */ /* */ /* */ /* testé avec - qrexx */ /* - /opt/Xed/srexx */ /* - /opt/Xed/regina */ /* */ /* syntaxe : getcd */ /* */ /***************************************************************/ /* */ /* Auteur */ /* */ /* gilles.hunault@univ-angers.fr */ /* */ /* http://www.info.univ-angers.fr/pub/gh */ /* */ /***************************************************************/ /* */ say say " getcd.rex : récupération des fichiers du chemin courant " say /* on écrit le nom du répertoire courant et on en déduit le nom de l'archive */ fd = "CHEMIN" "pwd > " fd fe = linein(fd) call linein fd "rm " fd say " répertoire : " fe ia = lastpos("/",fe) lf = substr(fe,ia+1) nomzip = lf".zip" parse arg nomd if words(fe)=0 then nomzip=nomd".zip" say " le nom du fichier est sans doute " nomzip Gran = xrange('A','Z') Peti = xrange('a','z') say "Essai de : unzip -uLao " nomzip " -d ." "unzip -uLao " nomzip " -d ." retour = rc /* il est possible que l'archive vienne de Windows et qu'elle soit en majuscule, ou en initiale majuscule... donc tant qu'on n'a pas trouvé d'archive, on passe en revue ces divers cas... */ numt = 0 do while retour \= 0 numt = numt + 1 select when numt=1 then nomzip = translate(substr(nomzip,1,1))||substr(nomzip,2) when numt=2 then nomzip = translate(nomzip,Peti,Gran) when numt=3 then nomzip = translate(nomzip) otherwise do say " pas vu, pas pris !" exit end end say "Essai ("||numt||") de : unzip -uLao " nomzip " -d ." "unzip -uLao " nomzip " -d ." retour = rc if numt=3 then retour = 0 end /* fin de tant que */ say say ' Vous pouvez aussi utiliser " à la main" le fichier ' lf".zip" say " avec pkunzip -n "lf "*.* " say " ou unzip -uLao " nomzip " -d ." say