有一个特定的案例,其中有"带空格的路径"没有工作,我需要获取Windows短路径名称(例如Program Files = Progra~1和Program Files(x86)= Progra~2)。
这就是我现在正在做的事情:
[status, PATHROOT] = dos([ ...
'for %A in ("' ...
myPathWithSpace ...
'") do @echo %~sA' ...
]);
现在,我尝试使用regexp
和regexprep
格式化文件路径,但在某些情况下,它无法重现dos
短名称。那么如何用MATLAB命令重现dos
命令呢?
我的丑陋尝试regexp
和regexprep
:
PATHROOT = regexprep(regexprep(regexp(myPathWithSpace,'\w:\\\w*\s\w*\\.*','match'),'\s', ''),'(\w:\\\w{6})\w*','$1~1');
答案 0 :(得分:1)
使用此功能:
function shortPath = getshortpath(longPath)
fs = actxserver('Scripting.FileSystemObject');
shortPath = fs.GetFolder(longPath).ShortPath;
fs.delete;