Assignation « automatique »
9 sujets de 1 à 9 (sur un total de 9)
-
Bonjour,
Je cherche à créer une assignation automatique en fonction du répertoire dans lequel se trouve un script.
Imaginons que mon script se trouve dans DH0:Utilitaires/mon prg
Je voudrais qu’en cliquant sur le script (qui contiendrait la commande d’assignation), une assignation automatique soit fait du genre monprg: DH0:Utilitaires/monprg
et que si l’on change de place le répertoire monprg dans DH0:Divers/monprg l’assignation deviennent en cliquant sur le script monprg: DH0:Divers/monprg
L’assignation ne doit pas être permanente mais uniquement valable lorsqu’on clique sur le script, donc rien à écrire dans la user-startup.
Merci!
assign monprg « »
Euh à vérifier, mais est-on certain que lors de l’exécution d’un script le répertoire courant est effectivement modifié pour pointer sur le répertoire dans lequel se trouve le script ?
Il n’existe pas un équivalent à PROGDIR: en script ?
Sinon pour info si tu souhaites supporter également AmigaOS 4 il existe l’assignation dynamique CURRDIR: qui remplace avantageusement l’utilisation des doubles-quotes « » niveau lisibilité.
J’avais écrit un petit prog qui permet d’assigner le répertoire courant et voici le code il suffit de le recompiler pour chaque machine.
A+
NB il faut supprimer les espaces dans la déclaration des includes, j’ai pas trouvé la combine pour un affichage correct, désolé!
#include < stdlib.h >
#include < string.h >
#include < stdio.h >
#include < clib/dos_protos.h >
#define VERSION « Assign_CurrentDir 0.1 (19.12.2005) »
char *vers = « $VER: « VERSION;
/*
*/int main (int argc, char *argv[])
{
char drawer[310], buffer[350];
BPTR fp;
if (!stricmp(« -h », argv[1]) || !stricmp(« -? », argv[1]) || argc != 2)
{
printf (« Assign_CurrentDir [name_without ‘:’]n »);
return TRUE;
}
if (!(fp = Open (« ram:Assign_CurrentDir.dbg », MODE_NEWFILE)))
{
printf (« impossible d’ouvrir le fichiern »);
return FALSE;
}
GetCurrentDirName (drawer, 300);
sprintf (buffer, »assign %s: %s », argv[1], drawer);
//printf (« CurrentDir ‘%s’, argv[1] ‘%s’, buffer ‘%s’n », drawer, argv[1], buffer);
Write (fp, buffer, strlen (buffer));
Execute (buffer,0,fp);//dos
Close (fp);
return TRUE;
}
/*
*/Admin
9 sujets de 1 à 9 (sur un total de 9)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Assignation « automatique »