Windows kısayolları için göreli yolları kullanma


49

Gibi bir klasör şeması var (oldukça basitleştirilmiş versiyonu):

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

... ve "Yeni Dosyalar" alt klasörlerinden "Test Edilen Dosyalar" alt klasörüne kadar her klasörde bir kısayol olmasını istiyorum. Ancak bu klasör zaman zaman hareket ettirilebilir, bu da söz konusu kısayolları kırabilir.

Her klasöre göreceli kısayol yapmanın bir yolu var mı? Bunu bir yolu ayarlayabileceğiniz, satırları boyunca .../Filesbir ebeveyne ve sonra yeni bir klasöre geri dönebileceğiniz HTML'yi yaptığımı hatırlıyorum , ancak bunun Windows kısayolları altında bir destek olup olmadığından emin değilim?

Not: Benzer bir şekilde göreceli kısayolların olması durumunda, hedef bir dosya olduğunda https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the- klasör-is . Mevcut durumda, hedef bir klasördür.


1
../Filesİki noktayla denedin mi? Windows çalıştırmıyorum ama işe yarayabileceğini düşünüyorum.
Brian Z

1
İlk denediğim şey buydu, yine de teşekkürler. :(
Gary Morris


@ sancho.s - AFAIK, buradaki cevaplar sadece .bat dosyalarını çalıştırmak için çalışır. Burada ihtiyaç duyulan şey, bunun yerine bir klasöre başvurmanın bir yoludur.
ToolmakerSteve

@ToolmakerSteve - Sanırım "orada cevapları" sadece yüzeysel olarak kontrol ettin / okudun. Bunlardan biri ( stackoverflow.com/a/1751350/2707864 ) burada kabul edilen çözümdür; 4 yaş büyük. Denemedim. Bir diğeri ( stackoverflow.com/a/29261618/2707864 ) buradaki kabul edilen çözümün ikinci yarısıdır. Bunun hakkında yorum bile yaptınız. Denedim ve işe yarıyor. Yorum yapmak için kapsamlı olmak gerekmez, ancak okuyucuları yanlış yönlendirmemeye çalışılmalıdır.
sancho.s

Yanıtlar:


50

Bu yardımcı programı kullanabilirsiniz: Göreli .

Temel olarak "explorer.exe" nin kısayolunu sağ tıklama ile bağıl yolunuzun parametresiyle (normal bir kısayol oluşturduğunuz gibi) oluşturur.

Elbette bunu manuel olarak yapabilirsiniz.
Örneğinizde "Yeni Dosyalar \ Araçlar" bölümünde kısayol oluşturacaksınız.

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

Bunun için Windows'un normal bağlam menüsünü "Yeni / Kısayol oluştur" komutunu kullanabilir ve "Komutun konumunu yaz" kutusuna yukarıdaki komutu yazabilirsiniz.


Daha önceki araştırmam sırasında bunu okudum, ancak Explorer'da yerel bir çözüm umuyordum. Bu benim yedekleme planım olacak, şerefe.
Gary Morris

Bu arada, bu göreceli yol sistemler arasında da aynı kalacak mı? Veya klasörleri / içerikleri farklı sistemler arasında taşıdığımda göreli olarak mı kurmam gerekiyor?
Gary Morris

3
"Göreceli" yalnızca "% windir% \ explorer.exe" standardını kullanan kısayolu yapar, böylece farklı sistemde Göreceli'ye gerek kalmaz. %windir%\explorer.exeStandart bir kısayol yaparken bağıl yoldan önce yazmakla aynı olacaktır . Yani bunu manuel olarak yaparsanız, Göreceli hiç bir şeye ihtiyacınız olmayacak. (Göreceli
yolunuzdan

Ah üzgünüm, ilk cevabınızın o kısmını yanlış anladım, benim hatam! Çok teşekkürler!
Gary Morris

2
Buradaki manuel çözüm benim için kutunun dışında çalışmıyor. Ayrıca, "Başlat" %windir%ı boştan değiştirmek zorundayım .
notan3xit

30

Olası bir çözüm, açmak istediğinizi açmak için kısa yol yerine tek satırlı bir toplu iş dosyası kullanmaktır. Toplu iş dosyası kendi içindeki göreceli yolları kullanmanıza izin verir ve toplu iş dosyasının içine yerleştirildiği klasörün çalışma dizinine sahip olur.


Başka bir seçenek de, başlattığınız cmd.exeher şey yerine kısayolunuzun başlamasını sağlamaktır.cmd.exe

görüntü tanımını buraya girin

%COMSPEC%varsayılan olarak komut istemine işaret eden bir ortam değişkenidir .

/C Konsolun komutu yürüttükten sonra kendisini kapatmasına neden olur.


Çok teşekkür ederim! Bu benim için çalıştı. Kısayolumun aynı dizinde bir power-shell betiği çalıştırmasını sağlamak için saatler harcadım.
Shervin Shahrdar

Farklı bir durum için kullanışlıdır, ancak soru bir dosyayı açmakla ilgili değildir ; Windows Gezgini içinde belirtilen bir klasöre atlamak mümkün. Bu cevabı buna uyarlamanın bir yolu var mı?
ToolmakerSteve

7

Bu numara işe yarıyor:

% COMSPEC% / C " yolsuz exe adınızı" başlatır

örnek

% COMSPEC% / C başlangıç ​​winmine.exe


2
Lütfen soruyu tekrar dikkatlice okuyunuz. Yanıtınız yok değil orijinal soruya cevap.
DavidPostill

1
Win10 1607 için bu çözüm OP'nin sorusuna mükemmel cevap veriyor, Hedef: %COMSPEC% /C "start GoogleChromePortable.exe -enableextensions -incognito"Başlangıç: [boş bırakın]
semtex41

@ semtex41 Huh? Bunu deniyorum ve sonuç "Windows 'GoogleChromePortable' bulamıyor" diyen bir hata iletişim kutusu. OP'nin Windows Gezgini'ni belirtilen klasöre
gitme

@ToolmakerSteve, "Windows kısayolları için göreceli yolları kullanmak" başlığını iyi yazdım ve daha önce verilen bir cevaba katkıda bulundum. Ve OP'nin hedefi, yolları dinamik ve statik hale getirmektir. Cevabım statik olmayan bir yolda çalışan bir kısayolu nasıl oluşturduğumdan, cevabımın uyduğuna inanıyorum.
semtex41

@ semtex41- OP'nin belirtilen amacı ".." Tested Files "alt klasörüne giden bir kısayol ..". Bunu başarmak nasıl bu cevabı açıklayan değilseniz, o zaman netleştirmek lütfen edildi cevaba ekledi. Bir .exe dosyasını nasıl çalıştıracağınıza dair başka bir örnek vermiş gibisiniz. Ancak cevap zaten böyle bir örnek gösterdi. Öyleyse lütfen yaptığın noktayı tekrar belirt.
ToolmakerSteve

6

Web geliştirme ortamımı çalıştıran bir şablonda benzer bir çözüm kullanıyorum (proje dizinini aç, tarayıcıyı aç, WAMP'ı çalıştır, SCSS'yi çalıştır ...)

görüntü tanımını buraya girin

Değişkenleri yarasa betiğime vb. Aktarabilirim, bu harika. /cArgümanı koyduğunuzdan emin olun.cmd.exe


2

Mklink kullanabilirsiniz . Sembolik linkler, hard linkler ve rehber linkleri oluşturmanıza olanak sağlar.

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

Yüksek erişim yoksa, / j'yi kullanabilirsiniz.

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

Tüm yapı etrafında hareket etmek için xcopy komutunu kullanmanız gerekir . Örneğin, tüm yapı konteyner altındaysa :

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

komuta girme

 copy /b /e container container2

aşağıdaki yapıyı oluşturacak:

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

/ B anahtarı kopyalar Sembolik linkler yerine klasörlere onları dönüştürme.


Ancak, klasör kümesi farklı bir konuma taşınırsa, bu bağlantı hala doğru olacak mı?
ToolmakerSteve

Bu, sahip olmadığım ayrıcalıklar gerektiriyor, ancak işi yapacakmış gibi görünse de ... Bir kez oluşturulduktan sonra, sonuçtaki Kısayol özelliklerinin bir görüntüsünü gönderir misiniz?
sancho

Bağlantılar gerçekten doğru. Bu "dir" komutu ile onaylanabilir. Sorun şu ki, Dosya Yöneticisinin "kopyala-yapıştır", "taşı" ve "kopyala" eylemlerinin yapıyı tahrip etmesi. Bir geçici çözüm içerecek şekilde cevabı değiştirdim.
Krauss

1

Bir kısayol, konumunu değişkene kaydedebilir ve değişkeni kullanarak bir komut çağırabilir. Örneğin, hedef ile "Büyükbaba" kısayolunu oluşturun:

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

Tek satırla birlikte "C: \ Here.bat" toplu iş dosyasını oluşturun:

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

Şimdi, Grandparent içindeki klasör ne olursa olsun, tıkladığınızda, üst klasörünün üstü açılır. Hatta bir kök dizininde Grandparent ile çalışır.

Toplu iş dosyanız explorer.exe dışında bir şey başlatırken% HERE% değerini kullanabilirdi. Veya kısayol hedefindeki && işaretinden sonra Here.bat yerine,% HERE% 'ı kullanan bir program arayabilirsiniz.

Benim sistemimde Grandparent & veya && ile çalışıyor gibi görünüyor.


1
&&yalnızca önceki arama bir hata döndürmediyse sonraki aramayı gerçekleştirir, &ancak önemsemez. Bu durumda, hiçbir fark olmamalıdır.
leewz


0

Dosya sistemi yapısında, hedef klasöre (göreceli) Yolu veya üstündeki klasörü içeren bir ortam değişkeni oluşturabilirsiniz.

Örnek:

  • Çevre değişkeni:

    % Dropbox% = "C: \ Users \ Kullanıcı 1 \ Dropbox"

  • Kısayol Hedefi:

    "% Dropbox% \ Install \ Utilities \ File.exe"

SETX DOS komutunu ortam değişkenleri oluşturmak için kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.