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”