Page 1 of 1
Something like a shell's "profile"? [SOLVED]
Posted: 01 Mar 2012 22:02
by Filehero
Hi,
did a search with different combinations of "autoload", "perm" "global", "variable", "profile" etc., but straight from the result subjects I rather had no luck yet. Nevertheless, I'd like to apologize for any overlooks in advance.
"problem/challenge":
two different running contexts (vulgo: computers) will _generally_ differ in their root paths only. So, apart from their physical and logical layers (partitions and drives), below individual root paths either XY-host will exhibit an identical folder/file organisation.
This calls for 'profiles' -
autostarted/autoloaded root scripts defining the basic environment everything else that will be "called" is derived from/based upon.
How can this be achieved in an "easily" maintainable way?
Thanks & cheers,
Filehero
PS: Hope, I'm not about to become the forum's dumb a** ...
PS 2:
Edits in italic
Re: Something like a shell's "profile"?
Posted: 01 Mar 2012 22:45
by nas8e9
I'm not sure I understand: since Windows Vista, the Windows partition is always assigned the letter C:, meaning any location on the system drive can be relied upon to start with C:\.
If you're running Windows XP, there's the Windows %SystemDrive% and XYplorer's native <xydrive> variables.
If you need to refer to non-system partitions (e.g. D:\), you could define a global Windows variable (on Windows 7 through Control Panel > System > Advanced system settings > Advanced > Environment variables). AFAIK XYplorer supports Windows variables when defining locations.
Re: Something like a shell's "profile"?
Posted: 01 Mar 2012 23:28
by Filehero
Hi nas8e9,
thank you for your reply.
No, unfortunately I'm not relying on window's world wide canonical folders. But I should better try to give a better example ('backup'), so here I go:
Computer 1's path for backup --> D:\$targetPath
Computer 2's path for backup --> C:\Data\$targetPath
My goal: the _global and portable_ script should care for '$targetPath', the _local profile_ (script?) cares for the differing upstream paths ("D:\" and "C:\Data").
Cheers,
Filehero
Re: Something like a shell's "profile"?
Posted: 02 Mar 2012 00:46
by nas8e9
Filehero wrote:No, unfortunately I'm not relying on window's world wide canonical folders. But I should better try to give a better example ('backup'), so here I go:
Computer 1's path for backup --> D:\$targetPath
Computer 2's path for backup --> C:\Data\$targetPath
My goal: the _global and portable_ script should care for '$targetPath', the _local profile_ (script?) cares for the differing upstream paths ("D:\" and "C:\Data").
I think your best bet for the upstream path at least (computer-specific) is Windows system variables, which work for both regular as well as portable installations: the variable is set per-computer. I've tested XYplorer's system variable support, and they're even resolved within the address bar (e.g. enter %SystemDrive% and see how XYplorer changes the AB icon to that for the system drive).
I'm not clear what your requirements are for $targetpath: if it's similar to the upstream path in that it can be set once and for all per computer, a system variable should work?
Re: Something like a shell's "profile"? [Solved]
Posted: 02 Mar 2012 18:24
by Filehero
nas8e9 wrote:I'm not clear what your requirements are for $targetpath: if it's similar to the upstream path in that it can be set once and for all per computer, a system variable should work?
Yes, the $targetpath is supposed to be the same.
You're right, system variables is the obvious way to go. But there are two reasons, why I do look for alternative ways.
First, I'm simply exploring XYPlorer's possibilities. Secondly, and more relevant, I'm always trying to setup my "environments" as self-contained as possible. Especially, since XYPlorer is portable.
In the help file I've found a section mentioning a way to make variables persisting sessions. I'll try that soon, if it works the way I suppose (as soon as a permanent variable statement gets evaluated, the key/value pair ist written into the .ini ar any other file) I simply have to run this statement with "Run script" once and I'm done.
Will report back....
Edit: It exactly works that way!!
Simply switch on "Configuration/Extended/Scripting/Remember permanent variables" (restart required) and the values become persistent. Really cool ...
And a small test snippet:
Code: Select all
"1. Create persistency ..."
$p_Perm = "I'm the survivor!";
msg $p_Perm;
perm $p_Perm;
// now close all running XPlorer sessions to assure RAM cleanup and restart
"2. Check persistency ..."
msg $p_Perm;
"3. Remove persistency ..."
unset $p_Perm;
// now close all running XPlorer sessions to assure RAM cleanup and restart
"4. Check persistency again..."
msg $p_Perm; // the value should be gone now, and the variable identifier literal displayed instead
Cheers,
Filehero