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

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

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 で対処しています。今回のケースでは、ターゲットはFolderです。

回答 (8)

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

このユーティリティを使用することができます。 Relative .

. .

このユーティリティは基本的に右クリックで相対パスをパラメータとした “explorer.exe "へのショートカットを作成します(通常のショートカットを作成するのと同じ方法で)。

もちろん手動でもできます。

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

1つの可能な解決策は、開きたいものを開くためのショートカットではなく、1行のバッチファイルを使用することです。バッチファイルは、それ自体の内部で相対パスを使用することができ、バッチファイルが配置されたフォルダの作業ディレクトリを持つようになります。

もう一つのオプションは、ショートカットを起動しているものではなく、起動しているものでcmd.exeを起動させ、起動しているものをcmd.exe

%COMSPEC%の引数として渡すことです。

/C は、コマンド実行後にコンソールを終了させます。

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

/cの後には必ずcmd.exeの引数を入れるようにしましょう。

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

このトリックは以下のように動作します:

%COMSPEC% /C start“パスなしのあなたのexe名”

example

%COMSPEC% /C start winmine.exe

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

mklink ](https://technet.microsoft.com/en-us/library/cc753194(v=ws.10).aspx)を使用することができます。シンボリックリンク、ハードリンク、ディレクトリリンクを作成することができます。

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

コマンドを入力すると、以下のような構造体が作成されます。

xcopy /b /e container container2

/bスイッチは、シンボリックリンクをフォルダに変換するのではなく、シンボリックリンクをコピーします。(/bcopy コマンドとは全く異なる意味を持つことに注意してください)

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

ショートカットは、その場所を変数に記録し、その変数を使ってコマンドを呼び出すことができます。例えば、ショートカット “Grandparent "をtarget:

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

バッチファイル "C:\Here.bat "を1行:

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

これで、Grandparentがどんなフォルダにあっても、それをクリックすると、その親フォルダの親フォルダが開くようになります。ルートディレクトリにあるGrandparentでも動作します。

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

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

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

ショートカットのプロパティで 'Start In' ボックスを空欄にすると、リンクは現在の作業ディレクトリからの相対的なものになります。

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

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

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

例:

  • 環境変数。

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

環境変数を作成するには、DOS コマンド SETX を使用することができます。

関連する質問

3
19
10
28
7