Войти

Показать полную графическую версию : Преобразование пути со ссылками (Junction Points и Symbolic Links)


kalam
24-02-2023, 12:57
Нужна подпрограмма для Преобразование пути со ссылками (Junction Points и Symbolic Links) (также известные как "точки повторного анализа").

Берем любой путь, где могут быть папки-ссылки или в конце, и/или в середине и
преобразуем его в "реальный путь", где только "физические" <DIR> папки.


set "SomePathMayBeWithLinks=c:\name\link\nameM\linkN\"
set "RealPath=not yet conversion"

call :ConversionPath "%SomePathMayBeWithLinks%" "RealPath"
echo. исходный путь: "%SomePathMayBeWithLinks%"
echo. реальный путь: "%RealPath%"
goto :EoF

:ConversionPath
...
:: допишите, плиз, недостающее
set "%~2=..."
exit /b 0


Я, кроме как парсить dir /AL , не вижу решения, но в нем не силен :( Понял лишь, что разбирать достаточно с конца.
(команда dir выводит вариации ссылок как <JUNCTION>, <SYMLINK>, <SYMLINKD>)
Прошу учесть особенность - в именах моих папок и ссылок встречаются "неприличные" строковые-bat-символы & % ^ !, разрешенные в именах папок (запрещенка как я тут видел термин), и,
последняя капелька дегтя, - символы [ ] ,которые в именах могут быть (в листинге dir сам ссылаемый путь заключен в эти квадратные скобки).

PS как любитель Far, пока справляюсь его встроенной такой функцией (например, преобразованный в реальный, путь из неактивной панели !#!=\), но нужна независимость :)




© OSzone.net 2001-2012