Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Преобразование пути со ссылками (Junction Points и Symbolic Links) (http://forum.oszone.net/showthread.php?t=353123)

kalam 24-02-2023 12:57 3004020

Преобразование пути со ссылками (Junction Points и Symbolic Links)
 
Нужна подпрограмма для Преобразование пути со ссылками (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, пока справляюсь его встроенной такой функцией (например, преобразованный в реальный, путь из неактивной панели !#!=\), но нужна независимость :)


Время: 02:20.

Время: 02:20.
© OSzone.net 2001-