How to get the path of exe file?

I have convert my .m file(a function) to .exe file, and i run the .exe file from cmd like this:
Now i want to get the path of exe file automatic(in this example it is D:\test\),how can i get it?

 Accepted Answer

Walter Roberson
Walter Roberson on 21 Dec 2016

6 Comments

Real Name
Real Name on 15 Jun 2019
Edited: Real Name on 15 Jun 2019
"Newsreader is no longer available"
This is why even if answers are duplicated, at least give a copy of the answer rather than just linking.
@StackOverflow, @Piazza
This is not StackOverflow or Piazza .
I have posted over 65000 responses. Stopping to copy in all of the relevant documentation at each point would have taken a lot of extra time.
It would also have involved copying in a lot of copyrighted materials, almost certainly involving more copying than is permitted by the case law on proportions permitted to be copied under the Fair Use clauses in USA copyright law. The portions of that case law that deal with copying larger sections are strictly for analysis and criticism -- which is to say that you have to actively analyze everything copied and respond to it or discuss how it all holds together and how it compares to other ideas. USA copyright law does not permit technical material to be copied in bulk just to make it convenient to access the material if the primary link becomes inaccessible.
Walter Roberson
Walter Roberson on 16 Jun 2019
Edited: Walter Roberson on 16 Jun 2019
15 posts by 6 different authors. Under copyright law, before I could copy the material here, I would have to obtain permission from all 6 authors. I am certain I can contact 2 of them, and suspect I know how to locate another 2 of them, and just might be able to contact 1 more of them, but I doubt I can contact the remaining author.
I wonder how many of those 65000 answers are now useless because they only contain a dead link
I don't know at the moment, but you are welcome to count them yourself.
E Swan: the number that are "now useless because they only contain a dead link" is low. When you click on a view_thread link, the page that you are taken to now includes a link to the relevant Google Groups discussion.

Sign in to comment.

More Answers (4)

Image Analyst
Image Analyst on 21 Dec 2016
See my attached function.

3 Comments

See discussion of MCR_CACHE_ROOT.
Try setting your MCR_CACHE_ROOT environment variable to dot.
This will make it unpack the CTF to your app's folder on your deployed/target computer. Yes, it will clutter up that folder with stuff but now any files you deployed will most likely be found, whereas they might not be if you used the wrong code to get the folder where your actual executable lives. Remember the executable your users run is actually like a shell program that unpacks a bunch of stuff, including the actual executable, to some secret folder. And it is that executable that actually gets run. So there are two folders, or even more. The one given by pwd. The one given by mfilename('fullpath'). And the one given by ctfroot. And there are even more folders than that. Granted, it's a confusing mess.
Where should the MCR_CACHE_ROOT be set? Would I have setenv(MCR_CACHE_ROOT,'.') as part of the compiled code, or is there a different method?
That should be fine. If you don't set it, it picks some hidden place, like maybe something under c:\users somewhere. If you do that then you need to make sure you use the -a option to include any files you need to load at runtime. If you use dot, then you can put them as subfolders of your installation folder and put them there with a third party installer (like I do).

Sign in to comment.

edit
edit on 22 Dec 2016
Edited: Stefanie Schwarz on 21 Oct 2024
Thank you for your help. I have solve the problem by add the showpath.m into my function .m file then convert it to .exe. The detail of showpath.m file is like this:
function [thePath]=showpath()
% Show EXE path:
if isdeployed % Stand-alone mode.
[status, result] = system('set PATH');
thePath = char(regexpi(result, 'Path=(.*?);', 'tokens', 'once'));
else % Running from MATLAB.
thePath=pwd;
end
return
José-Luis
José-Luis on 21 Dec 2016

2 Comments

It seem no work,and i think what i want to do just something like mfilename(it seem just work in .m file not in .exe file).
"It seem no work" doesn't really help us understand what the problem is. Could you show what is the result you expect and what you use as input?

Sign in to comment.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!