私は(非常に簡略化されたバージョン)のようなフォルダスキームを持っています:
New Files
>Tools
>Scripts
Tested Files
>Tools
>Scripts
...そして各フォルダに "New Files"の子フォルダから "Tested Files"の子フォルダへのショートカットを作成します。しかし、このフォルダは時々動き回ってしまう可能性があり、これはショートカットを壊すことになります。
各フォルダへの相対ショートカットを作成する方法はありますか? .../Files
の行に沿って親に戻って新しいフォルダに移動するパスを設定できるHTMLでこれを行ったことを覚えていますが、これがWindowsのショートカットでサポートされているかどうかはわかりませんか。
シモンズ:ターゲットがファイルであるとき、同様に相対的なショートカットの場合は、で処理されます https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start - フォルダの相対位置 。今回の場合、ターゲットはフォルダです。
このユーティリティを使用することができます: 相対的な 。
それは基本的に右クリックであなたの相対パスのパラメータで "Explorer.exe"へのショートカットを作成します(あなたが通常のショートカットを作成するのと同じ方法で)。
もちろんこれは手動でも可能です。
あなたの例では、 "New Files\Tools"にショートカットを作成します。
%windir%\Explorer.exe "..\..\Tested Files\Tools"
これには、Windowsの通常のコンテキストメニュー「ショートカットの新規作成/作成」を使用し、「アイテムの場所を入力してください」ボックスに上記のコマンドを入力します。
考えられる解決策の1つは、ショートカットの代わりに1行のバッチファイルを使用して、開きたいものをすべて開くことです。バッチファイルでは、内部で相対パスを使用することができ、バッチファイルが配置されているフォルダの作業ディレクトリがあります。
もう一つの選択肢はあなたのショートカットがあなたが起動しているものではなくcmd.exe
で開始し、起動しているものは何でもcmd.exe
への引数として渡すことです
%COMSPEC%
は、環境変数で、デフォルトでコマンドプロンプトを指す。
/C
は、コマンドの実行後にコンソールを自動的に閉じます。
このトリックはうまくいきます:
%COMSPEC%/ C開始「パスなしのexe名」
例
%COMSPEC%/ C start winmine.exe
私のWeb開発環境を実行するテンプレートで同様の解決策を使用しています(プロジェクトディレクトリを開く、ブラウザを開く、WAMPを実行する、SCSSを実行する...)
Batスクリプトなどに引数を渡すことができます。これはクールです。 /c
の後に必ずcmd.exe
引数を置くようにしてください
あなたは mklink を使うことができます。シンボリックリンク、ハードリンク、ディレクトリリンクを作成することができます。
mklink /d Tools "..\Tested Files\Tools" (elevated command Prompt)
昇格したアクセスがない場合は、/ jを使用できます。
mklink /j Tools "..\Tested Files\Tools"
構造全体を移動するには、xcopyコマンドを使用してください。たとえば、すべての構造がコンテナの下にあるとします。
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スイッチは、フォルダに変換する代わりに、シンボリックリンクをコピーします。
ショートカットのプロパティで'Start In'
ボックスを空のままにした場合、リンクは現在の作業ディレクトリからの相対パスになります。
ショートカットはその位置を変数に記録し、その変数を使用してコマンドを呼び出すことができます。たとえば、targetでショートカット "Grandparent"を作成します。
%windir%\system32\cmd.exe /c set HERE="%CD%" && "C:\Here.bat"
1行でバッチファイル "C:\ Here.bat"を作成します。
@%windir%\Explorer.exe /n,/select, %HERE%
さて、あなたがそれをクリックすると、Grandparentがどんなフォルダにあっても、その親フォルダの親は開きます。ルートディレクトリのGrandparentでも動作します。
あなたのバッチファイルはExplorer.exe以外の何かを始めるのに%HERE%を使用したかもしれません。ショートカットターゲットの&&の後のHere.batの代わりに、%HERE%を使用するプログラムを呼び出すこともできます。
私のシステムでは、Grandparentは&または&&と一緒に機能するようです。
ファイルシステム構造内のターゲットフォルダーまたはその上のフォルダーへの(相対)パスを含む環境変数を作成できます。
例:
環境変数:
%Dropbox%= "C:\ Users\User 1\Dropbox"
ショートカットターゲット:
「%Dropbox%\ Install\Utilities\File.exe」
DOSコマンドSETXを使用して、環境変数を作成できます。