auto generate script menu? loop list of names...

Discuss and share scripts and script files...
Post Reply
rur54
Posts: 46
Joined: 12 Feb 2015 19:52

auto generate script menu? loop list of names...

Post by rur54 »

Hi have not been here for a while so I forgot if this is the right place to ask a question script related.

Currently I use this type of script in the left catalog panel, to create "buttons" and when click on buttons it shows menu with options (locations) to move files to.

Script caption "My Documents" (for example)

Code: Select all

"folder 1"
 $SelectedItems = get("SelectedItemsPathNames", "|");
 moveto "?:\documents\folder1\", $SelectedItems;

"folder 2"
 $SelectedItems = get("SelectedItemsPathNames", "|");
 moveto "?:\documents\folder2\", $SelectedItems;

"folder 3"
 $SelectedItems = get("SelectedItemsPathNames", "|");
 moveto "?:\documents\folder3\", $SelectedItems;
Question:
Not sure if using proper language to ask but here...
Any way to make a script variable for moveto folder, then have a list of folders (`n), then script would loop through list and create menus for it?

(for example)
$baseFolder = "?:\documents\"
$nameList =
(
folder1
folder2
folder3
)

"looped nameList text index"
$SelectedItems = get("SelectedItemsPathNames", "|");
moveto $baseFolder$nameListIndex, $SelectedItems;

Currently if I want more then two pop-up items it becomes quite a pain .. copy, paste edit text on every line, etc...
This way I could just edit list very quickly.

Any help figuring out is greatly appreciated.
Cheers

highend
Posts: 13274
Joined: 06 Feb 2011 00:33

Re: auto generate script menu? loop list of names...

Post by highend »

You mean something like this?

Code: Select all

    $base = "?:\documents";
    $subfolders = <<<>>>
$base\folder1
$base\folder2
$base\folder3
>>>;
    $dstFolder = popupmenu($subfolders, , , , , , <crlf>);
    if ($dstFolder) { moveto $dstFolder, get("SelectedItemsPathNames", "|"); }
    else { status "No folder selected, aborted!", "8B4513", "stop"; }
One of my scripts helped you out? Please donate via Paypal

rur54
Posts: 46
Joined: 12 Feb 2015 19:52

Re: auto generate script menu? loop list of names...

Post by rur54 »

Big thank you highend, that works great.
Quite close to what I was asking and it does it great.

If only thing better would be to try get rid of that $base variable in front of folder names.
I guess idea would be just to copy folder names from win explorer or existing list and paste into that subfolder section so I would not have to go line by line inserting or removing words.
Not a big deal.

I tried putting $base$subfolders together in popupmenu (after removing $base from subfolders variable) but that did not work out well
I tried myself doing "foreach" loop, but could not figure out how token index work..
Will have to mess around with this some more later and read help manual on scripting.

For now, works great for what it is and I thank you for your time.
Cheers

highend
Posts: 13274
Joined: 06 Feb 2011 00:33

Re: auto generate script menu? loop list of names...

Post by highend »

Code: Select all

    $base = "?:\documents\";
    $subfolders = <<<>>>
folder1
folder2
folder3
>>>;
    $subfolders = regexreplace($subfolders, "^(.+)$", $base . "$1");
    $dstFolder = popupmenu($subfolders, , , , , , <crlf>);
    if ($dstFolder) { moveto $dstFolder, get("SelectedItemsPathNames", "|"); }
    else { status "No items selected, aborted!", "8B4513", "stop"; }
Ofc this could be done with a foreach loop as well but if a regexreplace works...
One of my scripts helped you out? Please donate via Paypal

rur54
Posts: 46
Joined: 12 Feb 2015 19:52

Re: auto generate script menu? loop list of names...

Post by rur54 »

thanks highend.

I ended up doing this. Actually was quite simple. No need for anything else

Code: Select all

    $base = "?:\documents\";
    $subfolders = <<<>>>
folder1
folder2
folder3
>>>;
    $dstFolder = popupmenu($subfolders, , , , , , <crlf>);
    if ($dstFolder) { moveto $base$dstFolder, get("SelectedItemsPathNames", "|"); }
    else { status "No folder selected, aborted!", "8B4513", "stop"; }
[EDIT]
I should explain... it add only folder names to the menu but uses $base+foldermenus as destination. Which is what I like. I do not need full path in the popup menu.

ps did not try your last code yet.
Thank you

highend
Posts: 13274
Joined: 06 Feb 2011 00:33

Re: auto generate script menu? loop list of names...

Post by highend »

Yeah, you can do this as well. I would probably change a tiny bit to make it more readable:

Code: Select all

$base = "?:\documents";
...
moveto "$base\$dstFolder" ...
One of my scripts helped you out? Please donate via Paypal

Post Reply