Pracuję w środowisku Windows z wieloma różnymi współdzielonymi dyskami. Zazwyczaj okna Findera są otwarte na różne udostępnione dyski i zagnieżdżone foldery. Mam skonfigurowaną usługę (którą utworzyłem w Automatorze), która pozwala mi klikać z wciśniętym klawiszem Control i „kopiować pełną ścieżkę” pliku lub folderu, który wybrałem w Finderze.
To, co otrzymuję, wygląda mniej więcej tak:
/Volumes/someFolder/someFile.docx
Jeśli jednak wybiorę ten element w Finderze i wykonam polecenie-i, zobaczę pełną smb://
ścieżkę, która zawiera również nazwę serwera. Chciałbym to skopiować, aby wyglądało to tak:
smb://Server/someParentFolder/someFolder/someFile.docx
Jak mogę utworzyć usługę w Automatorze, która skopiuje całą smb://
ścieżkę sieciową do wybranego pliku zamiast tej, która zgłasza się jako pełna ścieżka?
Jeśli Automator nie skopiuje smb://
ścieżki sieciowej, czy istnieje inny sposób, aby utworzyć narzędzie, które to zrobi?
smb://
link.Odpowiedzi:
Możesz kliknąć plik prawym przyciskiem myszy i wybrać „Uzyskaj informacje” - okno wyskakujące będzie miało właściwość, dla
Server
której wyświetla pełną ścieżkę URL z protokołem (np.smb://example.com/Data/file.png
)źródło
Dwa lata później jest to irytujący problem i nie znajdując dobrej odpowiedzi na podobne pytanie, zrobiłem usługę automatyzatora, która robi to w ramach pracy potrzebnej do stworzenia pliku .inetloc z Findera.
Zasadniczo wyszukuje punkt montowania bieżącego udziału za pomocą danych wyjściowych komendy mount i dopasowuje go do ścieżki „montowanej”, a następnie skleja je ze sobą, jak wspomniano powyżej Iacopo.
Oto, jak możesz zrobić, co chcesz:
Przekaż wybrany element wyszukiwarki do skryptu powłoki w automatorze (jako zmienną, a nie standardową) i użyj tego skryptu:
Następnie możesz użyć akcji „Kopiuj do schowka” po skrypcie. Powinien załatwić sprawę. Jeśli ktoś chce, aby usługa automatyzacji utworzyła odpowiedni plik .inetloc, można go znaleźć tutaj .
źródło
Myślę, że można łatwo naprawić odrobinę jabłka i „sed”.
Nie wiem, jak wygląda twój oryginalny skrypt Apple, ale zakładam, że masz zmienną, która zawiera ścieżkę,
/Volumes/someFolder/someFile.docx
jak powiedziałeś, nazwijmy tę zmiennąthePath
. Wszystko, co musisz zrobić, to wziąćthePath
, usunąć/Volumes/
i dodaćsmb://Server/someParentFolder/
Ten kod to:
wtedy wszystko jest ustawione, użyj
relativePath
zamiast tego wyjściathePath
i powinno to działać, przynajmniej mi się udało :)źródło