Windowsショートカットに相対パスを使用する


49

次のようなフォルダースキームがあります(非常に簡略化されたバージョン):

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

...そして、「New Files」子フォルダーから「Tested Files」子フォルダーへの各フォルダーにショートカットを作成したいと思います。しかし、このフォルダは時々移動される可能性があり、これによりショートカットが破損します。

各フォルダーへの相対的なショートカットを作成する方法はありますか?パスを設定し.../Filesて、親に戻って新しいフォルダに戻るパスを設定できるHTMLでこれを行ったことを覚えていますが、これはWindowsのショートカットでサポートされているのかわかりませんか?

PS:ターゲットがファイルである場合の同様の相対的なショートカットの場合は、https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-で処理されますfolder-is。この場合、ターゲットはフォルダーです。


1
../Files2つのドットでを試しましたか?Windowsを実行していませんが、動作する可能性があります。
ブライアンZ

1
それは私が試した最初のことですが、感謝します。:(
ゲイリーモリス


@ sancho.s-私の知る限り、そこでの答えは.batファイルの実行に対してのみ機能します。ここで必要なのは、代わりにフォルダーを参照する方法です。
ToolmakerSteve

@ToolmakerSteve-「そこの答え」を表面的にのみチェック/読んだと思います。それらの1つ(stackoverflow.com/a/1751350/2707864)は、ここで受け入れられているソリューションです。4歳。私はそれを試しませんでした。もう1つ(stackoverflow.com/a/29261618/2707864)は、ここで受け入れられているソリューションの後半です。あなたもそれについてコメントしました。私はそれを試してみたが、うまくいく。コメントをするのに徹底的である必要はありませんが、読者を誤解させないようにしてください。
sancho.s復活モニカ

回答:


50

このユーティリティを使用できます:Relative

基本的に、右クリックで相対パスのパラメーターを使用して「explorer.exe」へのショートカットを作成します(通常のショートカットを作成するのと同じ方法)。

もちろん、これは手動で行うことができます。
この例では、「新規ファイル\ツール」にショートカットを作成します

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

これには、Windowsの通常のコンテキストメニュー「新規/ショートカットの作成」を使用し、「アイテムの場所を入力」ボックスに上記のコマンドを入力します。


私は以前の調査でそれについて読みましたが、Explorer内のネイティブソリューションを望んでいました。これは私のバックアップ計画ですが、乾杯です。
ゲイリーモリス

ところで、この相対パスはシステム間でも同じままでしょうか?または、異なるシステム間でフォルダー/コンテンツを移動する場合、Relativeをインストールする必要がありますか?
ゲイリーモリス

3
「Relative」は、標準の「%windir%\ explorer.exe」を使用してショートカットを作成するだけなので、別のシステムでRelativeを使用する必要はありません。これは%windir%\explorer.exe、標準のショートカットを作成しながら相対パスの前に入力するのと同じです。したがって、これを手動で行う場合、Relativeはまったく必要ありません。(相対パスの前にコマンドを覚えておく必要があります)
リック

申し訳ありませんが、あなたの最初の返信のその部分を誤解しました。本当にありがとう!
ゲイリーモリス

2
ここでの手動による解決策は、箱から出してすぐには機能しません。さらに、「開始」%windir%を空に変更する必要があります。
notan3xit

30

考えられる解決策の1つは、ショートカットの代わりに1行のバッチファイルを使用して、開きたいものを開くことです。バッチファイルでは、内部で相対パスを使用でき、バッチファイルが置かれているフォルダーの作業ディレクトリが作成されます。


別のオプションは、起動cmd.exeしているもので代わりにショートカットを起動し、起動しているものを引数として渡すことですcmd.exe

ここに画像の説明を入力してください

%COMSPEC%デフォルトでコマンドプロンプトを指す環境変数です

/C コマンドを実行した後、コンソールを自動的に閉じます。


どうもありがとうございました!これは私のために働いた。私は、ショートカットに同じディレクトリでpower-shellスクリプトを実行させるために何時間も費やしました。
シェルビンシャーダー

さまざまな状況で役立ちますが、問題はファイルを開くことではありません。Windowsエクスプローラー内の指定されたフォルダーにジャンプできることです。この答えを適応させる方法はありますか?
ToolmakerSteve

7

このトリックは機能します:

%COMSPEC%/ C start "パスなしのexe名"

%COMSPEC%/ C winmine.exeを開始します


2
質問を注意深く読んでください。あなたの答えは元の質問には答えませ
DavidPostill

1
Win10 1607の場合、このソリューションは、完全にターゲットをOPの質問に答える:%COMSPEC% /C "start GoogleChromePortable.exe -enableextensions -incognito"スタートでは:[休暇空白]
semtex41

@ semtex41え?私はそれを試し、その結果は、「Windowsは『GoogleChromePortable』を見つけることができないというエラーダイアログであることが指定したフォルダにWindowsエクスプローラをナビゲートのOPの目標としなければならない何か。?
ToolmakerSteve

@ToolmakerSteveのタイトルは「Windowsショートカットの相対パスの使用」であり、以前に提供された回答に貢献していました。そして、OPの目標は、実際にパスを動的にすることと静的にすることです。私の返信は、静的ではないパスで実行されるショートカットを作成する方法であるため、答えは適切だと思います。
semtex41

@ semtex41- OPの目標は、「..ショートカット..「Tested Files」子フォルダーへのショートカット」です。あなたはそれを達成、この答えを持ってする方法を説明されていない場合、あなたは何を明確にしてくださいました答えに追加します。.exeファイルの実行方法の別の例を示したようです。しかし、答えはすでにそのような例を示しました。それで、あなたが言っていた点をもう一度述べてください?
ToolmakerSteve

6

Web開発環境を実行するテンプレートで同様のソリューションを使用しています(プロジェクトディレクトリを開く、ブラウザを開く、WAMPを実行する、SCSSを実行する...)

ここに画像の説明を入力してください

batスクリプトなどに引数を渡すことができます。これは素晴らしいです。/c後に引数を入れてくださいcmd.exe


2

mklinkを使用できます。シンボリックリンク、ハードリンク、ディレクトリリンクを作成できます。

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

昇格されたアクセスがない場合は、/ jを使用できます

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

構造全体を移動するには、xcopyコマンドを使用する必要があります。たとえば、すべての構造がcontainerのにある場合

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

コマンドを入力する

 copy /b /e container container2

次の構造を作成します。

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

/ Bスイッチがコピーされますシンボリックリンクの代わりにフォルダにそれらを変換するに。


しかし、フォルダーのセットが別の場所に移動された場合、そのリンクは依然として正しいでしょうか?
ToolmakerSteve

これには、私が持っていない特権が必要ですが、それは仕事をするように見えます...作成されたショートカットプロパティの画像を投稿したらいいですか?
sancho.s復活モニカ

リンクは確かに正しいです。これは「dir」コマンドで確認できます。問題は、ファイルマネージャの「コピーアンドペースト」、「移動」、および「コピー」アクションが構造を破壊することです。回避策を含むように回答を変更しました。
クラウス

1

ショートカットは、その場所を変数に記録し、変数を使用してコマンドを呼び出すことができます。たとえば、ターゲットでショートカット「Grandparent」を作成します。

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

1行でバッチファイル「C:\ Here.bat」を作成します。

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

これで、Grandparentがどのフォルダーにある場合でも、それをクリックすると、その親フォルダーの親が開きます。ルートディレクトリの祖父母でも動作します。

explorer.exe以外の何かを開始する際に、バッチファイルが%HERE%を使用している可能性があります。または、ショートカットターゲットの&&の後のHere.batの代わりに、%HERE%を使用するプログラムを呼び出すことができます。

私のシステムでは、Grandparentは&または&&で動作するようです。


1
&&前の呼び出しがエラーを返さなかった場合にのみ、次の呼び出しを実行しますが、&気にしません。この場合、違いはないはずです。
leewz

1

'Start In'ショートカットのプロパティでボックスを空のままにした場合、リンクは現在の作業ディレクトリに関連します。

https://stackoverflow.com/a/17951772/40961も参照して ください


これは、指定されたフォルダーにWindowsエクスプローラーを移動するというOPの目標にどのように役立ちますか?
ToolmakerSteve

あなたが問題を抱えていた場合、解決策は理にかなっています...あなたのコメントはすべての答えにどのように役立ちますか?
デビッドd C eフレイタス

0

ファイルシステム構造内のターゲットフォルダーまたはその上のフォルダーへの(相対)パスを含む環境変数を作成できます。

例:

  • 環境変数:

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

  • ショートカットターゲット:

    「%Dropbox%\ Install \ Utilities \ File.exe」

DOSコマンドSETXを使用して、環境変数を作成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.