こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

シンボリックリンクが開けない

親フォルダーに、aフォルダーとbフォルダーが入っています。
aフォルダー配下には、xフォルダーがあり、その中には複数のテキストファイルが入っています。

parent\a\x\test.txt
parent\b\

以下の様なバッチファイルを「送る」に登録しました。

@echo off
cd /D %~1\x\
for %%i in (*.*) do (
mklink "..\..\b\%%~nxi" "%%i"
)

これにより、aフォルダーを選択して「送る」からバッチファイルを実行すると、bフォルダー配下に、xフォルダー配下のすべてのファイルのシンボリックファイルが貼られました。(シンボリックファイルは作成されました。)
しかし、シンボリックファイルを開こうとしても、以下のようなエラーメッセージが表示されて、開けません。

エラーコード 1921 ファイル名を解決できません。

どこを修正すればよいでしょうか。ご教示よろしくお願いします。

投稿日時 - 2014-01-20 21:49:40

QNo.8439042

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

mklinkはカレントディレクトリにリンクファイルを作成する仕様のようです。

MKLINK [[/D] | [/H] | [/J]] リンク ターゲット
 /D ディレクトリのシンボリック リンクを作成します。既定では、
   ファイルのシンボリック リンクが作成されます。
 /H シンボリック リンクではなく、ハード リンクを作成します。
 /J ディレクトリ ジャンクションを作成します。
  リンク   新しいシンボリック リンク名を指定します。
  ターゲット 新しいリンクが参照するパス (相対または絶対)を指定します。

よって
mklink a ..\x\b
といった形式にしなければなりません。というようにしてください。私はDOSバッチは詳しくありません。

投稿日時 - 2014-01-21 15:35:22

補足

先ほど、前回の質問も合わせまして、自己解決しました。
ディレクトリでなく、ファイルのシンボリックリンク作成で成功しました。やはり、mklinkの引数の設定のしかたが原因だったようです。
これでやりたいことがすべて実現できました。ありがとうございました。

投稿日時 - 2014-01-21 18:48:35

お礼

回答ありがとうございました。

投稿日時 - 2014-01-21 18:44:18