Получение реального пути текущего каталога при использовании символических ссылок

232
Daniele Torino

Итак, я только что узнал, что моя сборка не удалась на сервере сборки (Windows 2008 R2), потому что рабочая область расположена на другом диске с использованием символических ссылок.

Путь сборки есть, C:\Program Files (x86)\Jenkins\jobs\MyProjectTestBuild\workspaceно на самом деле он ведет, d:\Jenkins\jobs\MyProjectTestBuild\workspace\потому что C:\Program Files (x86)\Jenkins\jobsэто символическая ссылка на D:\Jenkins\jobs.

По какой-то причине моя сборка никогда не завершается при запуске из, C:\Program Files (x86)\Jenkins\jobs\MyProjectTestBuild\workspaceа завершается нормально при работе в реальном месте.

Итак, вопрос: как я могу узнать реальное местоположение текущего каталога, чтобы я мог перейти в него перед запуском сценария сборки ?


Редактировать:

Я знаю, как проверить расположение символической ссылки. Дело не в этом. Я хочу знать, учитывая путь, где находится реальное местоположение. Не имеет значения, могут ли быть какие-либо символические ссылки в цепочке путей.

0
Это не тот же вопрос. Я знаю, как проверить, куда указывает символическая ссылка. Я хочу знать, учитывая текущий путь, каково реальное местоположение. Независимо от того, могут ли быть какие-либо символические ссылки в цепочке путей. Я думаю, что в Linux есть что-то вроде команды `realpath`. Но как мне это сделать на Windows? Daniele Torino 6 лет назад 0
Я читаю это и продолжаю думать: «Да, это именно то, что вы хотите». Где символическая ссылка указывает на «реальный путь». Я думаю, об этом думают и другие. Возможно, дальнейшее объяснение сделает более понятным, как это отличается от того, что вы хотите. music2myear 6 лет назад 1
Нет, я думаю, что было довольно ясно. Символическая ссылка указывает на папку, которая является лишь частью реального пути. Ссылка находится в `C: \ Program Files (x86) \ Jenkins \ jobs` и указывает на` D: \ Jenkins \ jobs`. Текущий путь - `C: \ Program Files (x86) \ Jenkins \ jobs \ MyProjectTestBuild \ workspace`. И реальный путь это `D: \ Jenkins \ jobs \ MyProjectTestBuild \ workspace`. В настоящее время я решил проблему, выполнив жестко запрограммированный `cd` для реального каталога сборки, но я бы предпочел более общее решение. Предпочтительно тот, который не ломается, если кто-то переименовывает `MyProjectTestBuild`. Daniele Torino 6 лет назад 0

0 ответов на вопрос

Похожие вопросы