Menggunakan jalur relatif untuk pintasan Windows

49

Saya memiliki skema folder seperti (versi yang sangat disederhanakan):

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

... dan saya ingin memiliki pintasan di setiap folder dari folder anak "File Baru", ke folder anak "File yang Diuji". Tetapi folder ini dapat dipindahkan dari waktu ke waktu, yang akan merusak pintasan tersebut.

Apakah ada cara untuk membuat pintasan relatif ke setiap folder? Saya ingat melakukan ini dalam HTML di mana Anda dapat menetapkan jalur, sesuatu .../Filesuntuk kembali ke induk dan kemudian ke folder baru, tapi saya tidak yakin apakah ini sesuatu yang mendukung di bawah pintasan Windows?

PS: Kasus cara pintas yang relatif sama, ketika targetnya adalah file, ditangani di https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the- folder-is . Dalam kasus ini, targetnya adalah Folder.

Gary Morris
sumber
1
Apakah Anda mencoba ../Files, dengan dua titik? Saya tidak menjalankan Windows tapi saya pikir itu mungkin berhasil.
Brian Z
1
Itu hal pertama yang saya coba, terima kasih. :(
Gary Morris
stackoverflow.com/q/1169556/2707864
sancho.s Reinstate Monica
@ sancho.s - AFAIK, jawaban di sana hanya berfungsi untuk mengeksekusi file .bat. Apa yang dibutuhkan di sini adalah cara untuk merujuk ke folder.
ToolmakerSteve
@ToolmakerSteve - Saya kira Anda memeriksa / membaca "jawaban di sana" hanya secara dangkal. Salah satunya ( stackoverflow.com/a/1751350/2707864 ) adalah solusi yang diterima di sini, yang salah satunya adalah ca. 4 tahun lebih tua. Saya tidak mencobanya. Satu lagi ( stackoverflow.com/a/29261618/2707864 ) adalah paruh kedua dari solusi yang diterima di sini. Anda bahkan mengomentari yang itu. Saya mencobanya dan berhasil. Tidak perlu teliti untuk memberikan komentar, tetapi orang harus berusaha untuk tidak menyesatkan pembaca.
sancho.s Reinstate Monica

Jawaban:

50

Anda dapat menggunakan utilitas ini: Relatif .

Ini pada dasarnya membuat jalan pintas ke "explorer.exe" dengan parameter jalur relatif Anda dengan klik kanan (cara yang sama seperti Anda membuat jalan pintas normal).

Tentu saja Anda dapat melakukan ini secara manual.
Dalam contoh Anda, Anda akan membuat pintasan di "File Baru \ Alat" untuk

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

Anda dapat menggunakan menu konteks biasa "Baru / Buat pintasan" Windows untuk ini dan mengetik perintah di atas dalam "Ketik lokasi item" -box.

Rik
sumber
Saya memang membaca tentang itu selama penelitian saya sebelumnya, tetapi saya berharap untuk solusi asli dalam Explorer. Ini akan menjadi rencana cadangan saya, tepuk tangan.
Gary Morris
Omong-omong, akankah jalur relatif ini tetap sama di antara sistem juga? Atau apakah saya perlu Relatif diinstal jika saya memindahkan folder / konten antara sistem yang berbeda?
Gary Morris
3
"Relatif" hanya membuat pintasan menggunakan standar "% windir% \ explorer.exe" sehingga Anda tidak perlu Relatif pada sistem yang berbeda. Ini akan sama dengan mengetik %windir%\explorer.exesebelum path relatif saat membuat pintasan standar. Jadi jika Anda melakukan ini secara manual, Anda tidak perlu Relatif sama sekali. (Anda hanya perlu mengingat perintah sebelum jalan relatif Anda)
Rik
Ah maaf, saya salah mengerti bagian dari balasan pertama Anda, saya salah! Terima kasih banyak!
Gary Morris
2
Solusi manual di sini tidak bekerja untuk saya di luar kotak. Selain itu, saya harus mengubah "Mulai Masuk" dari %windir%kosong.
notan3xit
30

Salah satu solusi yang mungkin adalah menggunakan file batch satu baris alih-alih jalan pintas untuk membuka apa pun yang ingin Anda buka. File batch akan membiarkan Anda menggunakan jalur relatif di dalam dirinya dan akan memiliki direktori kerja dari folder apa pun file batch ditempatkan.


Pilihan lain adalah minta pintasan Anda mulai cmd.exedengan apa pun yang Anda luncurkan kemudian berikan apa pun yang Anda luncurkan sebagai argumencmd.exe

masukkan deskripsi gambar di sini

%COMSPEC%adalah variabel lingkungan menunjuk ke prompt perintah secara default .

/C menyebabkan konsol menutup sendiri setelah menjalankan perintah.

Scott Chamberlain
sumber
Terima kasih banyak! Ini berhasil untuk saya. Saya menghabiskan waktu berjam-jam untuk mencoba cara pintas saya menjalankan skrip power-shell di direktori yang sama.
Shervin Shahrdar
Berguna untuk situasi yang berbeda, namun pertanyaannya bukan tentang membuka beberapa file; ini adalah tentang kemampuan untuk melompat ke folder yang ditentukan dalam Windows Explorer. Apakah ada cara untuk mengadaptasi jawaban ini untuk melakukannya?
ToolmakerSteve
7

Trik ini berfungsi:

% COMSPEC% / C mulai "nama exe Anda tanpa jalur"

contoh

% COMSPEC% / C mulai winmine.exe

Alexis PERROTTEY
sumber
2
Silakan baca pertanyaan itu lagi dengan seksama. Jawaban Anda tidak menjawab pertanyaan awal.
DavidPostill
1
Untuk Win10 1607, solusi ini menjawab pertanyaan OP dengan sempurna, Target: %COMSPEC% /C "start GoogleChromePortable.exe -enableextensions -incognito"Mulai Masuk: [kosongkan]
semtex41
@ semtex41 Hah? Saya mencobanya, dan hasilnya adalah dialog kesalahan yang mengatakan "Windows tidak dapat menemukan 'GoogleChromePortable'. Apa hubungannya dengan tujuan OP menavigasi Windows Explorer ke folder yang ditentukan?
ToolmakerSteve
@ToolmakerSteve baik judulnya adalah "Menggunakan jalur relatif untuk pintasan Windows" dan saya berkontribusi pada jawaban yang diberikan sebelumnya. Dan tujuan OP sebenarnya adalah membuat jalur menjadi dinamis, vs statis. Jadi karena balasan saya adalah bagaimana saya membuat jalan pintas yang dijalankan di jalur non-statis, saya yakin jawaban saya cocok.
semtex41
@ semtex41- Sasaran OP yang dinyatakan adalah ".. jalan pintas .. ke folder anak" File yang Diuji "". Jika Anda tidak menjelaskan bagaimana untuk memiliki jawaban ini mencapai itu, maka silakan memperjelas apa yang Anda sedang menambah jawabannya. Sepertinya Anda baru saja memberikan contoh lain tentang cara menjalankan file .exe. Tetapi jawabannya sudah menunjukkan contoh seperti itu. Jadi tolong sebutkan kembali poin yang Anda buat?
ToolmakerSteve
6

Saya menggunakan solusi serupa dalam templat yang menjalankan lingkungan pengembangan web saya (buka direktori proyek, buka browser, jalankan WAMP, jalankan SCSS ...)

masukkan deskripsi gambar di sini

Saya bisa meneruskan argumen ke skrip bat saya dan lain-lain, ini keren Pastikan untuk mengajukan /cargumen setelahcmd.exe

Hrvoje Golcic
sumber
2

Anda bisa menggunakan mklink . Ini memungkinkan Anda membuat tautan simbolik, tautan keras, dan tautan direktori.

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

Jika tidak ada akses tinggi, Anda dapat menggunakan / j

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

Untuk bergerak di sekitar seluruh struktur Anda harus menggunakan perintah xcopy . Misalnya, jika semua struktur berada di bawah wadah :

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

memasukkan perintah

 copy /b /e container container2

akan membuat struktur berikut:

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

The / b switch akan menyalin link simbolik bukan mengkonversi mereka ke folder.

Krauss
sumber
Tetapi apakah tautan itu masih benar, jika kumpulan folder dipindahkan ke lokasi yang berbeda?
ToolmakerSteve
Ini membutuhkan hak istimewa yang tidak saya miliki, meskipun sepertinya itu akan melakukan pekerjaan ... Apakah Anda keberatan memposting gambar dari properti Shortcut yang dihasilkan, setelah itu dibuat?
sancho.s Reinstate Monica
Tautannya memang benar. Itu dapat dikonfirmasi dengan perintah "dir". Masalahnya adalah tindakan "salin-tempel", "pindahkan" dan "salin" dari Manajer File akan menghancurkan struktur. Saya telah memodifikasi jawaban untuk menyertakan solusi.
Krauss
1

Jalan pintas dapat merekam lokasi itu dalam suatu variabel dan memanggil perintah menggunakan variabel. Misalnya, buat pintasan "Kakek" dengan target:

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

Buat file batch "C: \ Here.bat" dengan satu baris:

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

Sekarang, apa pun folder kakek-nenek, ketika Anda mengkliknya, induk dari folder induknya terbuka. Ia bahkan bekerja dengan kakek-nenek di direktori root.

File batch Anda dapat menggunakan% HERE% untuk memulai sesuatu selain explorer.exe. Atau alih-alih Here.bat setelah && di target pintasan, Anda dapat memanggil program yang memanfaatkan% HERE%.

Di sistem saya, kakek-nenek sepertinya bekerja dengan & atau &&.

mudr
sumber
1
&&hanya melakukan panggilan berikutnya jika panggilan sebelumnya tidak mengembalikan kesalahan, sementara &tidak peduli. Dalam hal ini, seharusnya tidak ada perbedaan.
leewz
1

Jika Anda membiarkan 'Start In'kotak kosong di properti Shortcut, tautan relatif terhadap direktori kerja saat ini.

Lihat juga https://stackoverflow.com/a/17951772/40961

David d C e Freitas
sumber
Bagaimana ini membantu tujuan OP menavigasi Windows Explorer ke folder yang ditentukan?
ToolmakerSteve
Jika Anda memiliki masalah maka solusinya masuk akal ... bagaimana komentar Anda membantu pada setiap jawaban?
David d C e Freitas
0

Anda bisa membuat variabel lingkungan yang berisi Path (relatif) ke folder target atau folder di atasnya dalam struktur sistem file.

Contoh:

  • Variabel lingkungan:

    % Dropbox% = "C: \ Users \ User 1 \ Dropbox"

  • Target Pintas:

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

Anda dapat menggunakan perintah DOS SETX untuk membuat variabel lingkungan.

gmoises
sumber