2013-09-12 14:49:06 +0000 2013-09-12 14:49:06 +0000
53
53

Używanie ścieżek względnych dla skrótów systemu Windows

Mam schemat folderów jak (bardzo uproszczona wersja):

New Files
 >Tools
 >Scripts
Tested Files
 >Tools
 >Scripts

… i chciałbym mieć skrót w każdym folderze z folderów podrzędnych “New Files”, do folderu podrzędnego “Tested Files”. Ale ten folder może być przenoszony od czasu do czasu, co spowodowałoby uszkodzenie wspomnianych skrótów.

Czy istnieje sposób, aby zrobić względny skrót do każdego folderu? Pamiętam, że robiłem to w HTML, gdzie można było ustawić ścieżkę, coś na wzór .../Files, aby wrócić do rodzica, a następnie do nowego folderu, ale nie jestem pewien, czy jest to coś obsługiwanego przez skróty w systemie Windows?

PS: Przypadek podobnie względnych skrótów, gdy celem jest plik, jest omówiony w https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-folder-is . W tym przypadku celem jest Folder.

Odpowiedzi (8)

53
53
53
2013-09-12 15:08:36 +0000

Możesz użyć tego narzędzia: Relative .

Zasadniczo tworzy on skrót do “explorer.exe” z parametrem twojej względnej ścieżki za pomocą prawego przycisku myszy (tak samo jak tworzysz normalny skrót).

Oczywiście możesz to zrobić ręcznie. W twoim przykładzie utworzyłbyś skrót w “New Files\Tools” do

%windir%\explorer.exe "..\..\Tested Files\Tools"

Możesz użyć zwykłego menu kontekstowego “Nowy/Utwórz skrót” systemu Windows do tego celu i wpisując powyższe polecenie w polu “Wpisz lokalizację elementu”.

31
31
31
2013-09-12 15:45:43 +0000

Jednym z możliwych rozwiązań jest użycie jednolinijkowego pliku wsadowego zamiast skrótu do otwarcia tego, co chciałeś otworzyć. Plik wsadowy pozwoli ci używać względnych ścieżek wewnątrz siebie i będzie miał katalog roboczy niezależnie od folderu, w którym plik wsadowy jest umieszczony.


Inną opcją jest uruchomienie skrótu cmd.exe zamiast tego, co uruchamiasz, a następnie przekazanie tego, co uruchamiasz, jako argument do cmd.exe

%COMSPEC% jest zmienną środowiskową wskazuje domyślnie na znak zachęty polecenia .

/C powoduje, że konsola zamyka się sama po wykonaniu polecenia.

7
7
7
2014-05-12 01:21:58 +0000

Używam podobnego rozwiązania w szablonie, który uruchamia moje środowisko programistyczne (otwórz katalog projektu, otwórz przeglądarkę, uruchom WAMP, uruchom SCSS…)

Mogę przekazywać argumenty do mojego skryptu bat i itp. Upewnij się, że umieściłeś argument /c po cmd.exe.

6
6
6
2016-08-18 16:47:41 +0000

Ta sztuczka działa:

%COMSPEC% /C start“twoja nazwa exe bez ścieżki”

przykład

%COMSPEC% /C start winmine.exe

4
4
4
2016-08-30 08:19:38 +0000

Możesz użyć mklink . Pozwala on na tworzenie dowiązań symbolicznych, twardych dowiązań i dowiązań do katalogów.

mklink /d Tools "..\Tested Files\Tools" (elevated command prompt)

Jeśli nie ma podwyższonego dostępu, możesz użyć /j

mklink /j Tools "..\Tested Files\Tools"

Aby poruszać się po całej strukturze powinieneś użyć polecenia xcopy. Na przykład, jeśli cała struktura znajduje się pod container :

container
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

wpisanie komendy

xcopy /b /e container container2

utworzy następującą strukturę:

container2
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

Przełącznik /b skopiuje Symboliczne odnośniki zamiast konwertować je na foldery. (Zauważ, że /b ma zupełnie inne znaczenie dla polecenia copy)

1
1
1
2015-09-26 02:33:10 +0000

Skrót może zapisać swoją lokalizację w zmiennej i wywołać polecenie używając tej zmiennej. Na przykład, utwórz skrót “Dziadek” z celem:

%windir%\system32\cmd.exe /c set HERE="%CD%" && "C:\Here.bat"

Utwórz plik wsadowy “C:\NTutaj.bat” z pojedynczą linią:

@%windir%\explorer.exe /n,/select, %HERE%

Teraz, niezależnie od tego, w jakim folderze znajduje się Dziadek, po kliknięciu go otworzy się rodzic jego folderu nadrzędnego. Działa to nawet z dziadkiem w katalogu głównym.

Twój plik wsadowy mógł użyć %HERE% przy uruchamianiu czegoś innego niż explorer.exe. Lub zamiast Here.bat po && w celu skrótu, mogłeś wywołać program, który wykorzystuje %HERE%.

W moim systemie dziadek wydaje się działać z & lub &&.

1
1
1
2016-01-01 08:42:40 +0000

Jeżeli pozostawisz puste pole 'Start In' we właściwościach skrótu, linki będą względne do bieżącego katalogu roboczego.

Zobacz także https://stackoverflow.com/a/17951772/40961

0
0
0
2019-06-20 16:48:10 +0000

Możesz utworzyć zmienną środowiskową, która zawiera (względną) Ścieżkę do folderu docelowego lub folderu powyżej niego w strukturze systemu plików.

Przykład:

  • Zmienna środowiskowa:

  • Shortcut Target:

Do tworzenia zmiennych środowiskowych można użyć polecenia DOS SETX.