exeへのシンボリックリンクの実行-「指定されたパスは存在しません」


19

exeファイルを指すシンボリックリンクを実行しようとすると(Windows 7の場合)、「アプリケーションで開く」ウィンドウが表示されます。「.exe」ファイルに名前を変更すると、「指定されたパスは存在しません。パスを確認してから、もう一度試してください。」と表示されます。他の宛先へのシンボリックリンクは正常に機能するようです。

シンボリックリンクを実行する方法はありますか?

編集:コマンドプロンプトで次を実行すると、MyProgram.exeが両方とも実行されます。ただし、Windowsエクスプローラーでシンボリックリンクをダブルクリックすると、上記のエラーメッセージが表示されて失敗します。

C:\Temp>mklink SomeProgram.exe MyProgram.exe
symbolic link created for Backup.exe <<===>> Backup-1.0.1.exe

C:\Temp>SomeProgram.exe

C:\Temp>del SomeProgram.exe

C:\Temp>mklink SomeProgram.exe C:\Temp\MyProgram.exe
symbolic link created for Backup.exe <<===>> C:\Temp\Backup-1.0.1.exe

C:\Temp>SomeProgram.exe

シンボリックリンクが正しい場所を指していることを確認してください。リンクを作成するとき、ターゲットは現在のディレクトリではなく、リンクの場所に相対的です。(これは、* nixユーザーを頻繁に噛みます。)
grawity

@grawity:正しくありません。シンボリックリンクは、* nixで絶対パスと相対パスを使用できます。また、彼はWindows 7で述べた
クルトPfeifle

@pipitas:あなたは、シンボリックリンクが絶対パスを使用できることは正しいです(別の言い方をしたことはありません)ln -s ../../foo somedir/bar。|| シンボリックリンクは、* nixとWindowsの両方でまったく同じように機能します。
-grawity

回答:


8

他の唯一の答えは問題を実際に「修正」するのではなく、単にそれを認めるだけなので、この同じ問題があり、問題を発見したと言って価値があると思います。

私にとって問題だった相対 VS 絶対シンボリックリンク。Link Shell Extensionを使用します。

絶対シンボリックリンクを作成するとき、エクスプローラーは正常に動作します。相対リンクを作成するとき、エクスプローラーはそれらにチョークをかけます。

これは、Explorerが作業ディレクトリを計算する方法に何らかの関係があると推測できますか?たぶんいくつかのスラッシュの問題?

(少なくともWin7 x64では、拡張機能をインストールした後、LSEConfig.exeを開き、Absolute、Relativeを切り替えて相対リンクを作成する必要がある場合があります。 )


LSEをインストールしていますが、LSEConfig.exeはどこにありますか?
-laggingreflex

ああ、私は最新バージョンをインストールする必要がありました。以前はありませんでした。
laggingreflex

5
Windows 7 32ビットでは、絶対リンクは相対リンクよりもうまく機能しません。少なくともmklink [absolutelink] [absolutetarget]で作成した場合はそうではありません。
weberc2

5

私のために働く...

D:\Develop\DateTouch>mklink foo.exe TouchDate.exe
symbolic link created for foo.exe <<===>> TouchDate.exe

D:\Develop\DateTouch>foo.exe

シンボリックリンクをどのように作成していますか?


編集

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

  • Windows 7 Service Pack 1が適用されましたか?
  • 64ビット?

編集:私が見る問題:

C:\Users\ian.AVATOPIA>mklink foo4.exe c:\asdfasdf\adfasdf.exe
symbolic link created for foo4.exe <<===>> c:\asdfasdf\adfasdf.exe

したがって、ファイルが実際に存在することを確認してください。


編集:私はあなたの問題を見ていると思う:

  • コマンドプロンプトから正常に起動します。
  • Windowsエクスプローラーからの起動に失敗します

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


それはまさに私がやっていることです。「mklink foo.exe c:\ windows \ system32 \ notepad-exe」またはメモ帳が現在のディレクトリ「mklink foo2.exe notepad.exe」にある場合。foo.exeまたはfoo2.exeを開こうとすると、エラーメッセージが表示されます。「.exe」を「.txt」に置き換えることにより、ファイルをテキストエディタで開くことができるため、シンボリックリンクのターゲットが正しいことに注意してください。
基本

1
はい、それだけです!聖なるエクスプローラーはシンボリックリンクの実行を拒否しますが、WindowsコマンドプロンプトやmuCommanderなどの他のファイルマネージャーは実行しません。これで私の問題は解決しました-ありがとう!
basic6

4
まあそれは問題を解決しません。しかし、それを再現する方法を説明します。Explorerが起動に失敗する理由を示唆するものをプロセスモニターで見つけることができませんでした。アプリケーションを作成してを呼び出しShellExecute、それでも問題なく起動します。
イアン・ボイド

1
実際の問題に対処できなかった場合は、投票権を取り消す
weberc2

2

かなりのネクロだが、私はまだ同じ質問を持っていて、これがこの問題に対処する唯一のものでした。

しかし、ここに私の回避策があります!「C:\ app.exe」でエクスプローラーが起動しないために問題が発生する場合は、「C:\ app.exe」を内容として「app.bat」を作成してください。app.batを起動すると、コマンドラインからapp.exeが起動します。

問題は、app.exeの場所から実行することであるため、.exe内の相対リンクが問題を引き起こす可能性があり、単純なプログラムのみが機能します。ターゲットの場所に移動して.exeを実行する.batを作成することもできますが、「単なるシンボリックリンク」から何マイルも離れています。

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