Windowsでシンボリックリンクを実現する
create: 2020-1-22
Windows CMD

よく忘れるのでメモ。
PowerShellではなく、CMD.exe(いわゆる DOS 窓)からの実行です。

%USERPROFILE%/Download を移動したい

SSD が 512GB しかないので、アプリをダウンロードしたものを一緒に置いておくとつらいので、別のドライブにダウンロードディレクトリを移動することにしました。

「ダウンロード」フォルダのプロパティから「場所」を開き、別ドライブにすることでダウンロードフォルダ自体は変更できます。
ですがSlackThunderBirdなど、一部のプログラムでは直接「%USERPROFILE%\Downloads」がターゲットになっている様子。
プログラムごとにいちいち設定変更するのも面倒なので、%USERPROFILE%\Downloadsを他の場所にリンクしてしまいましょう。

まずは「ダウンロード」フォルダの向き先を変える

今回は外付け HDD「F:\downloads」にします。
「ダウンロード」フォルダのプロパティから、「場所」をお好みの場所に変更します。

ダウンロードプロパティの変更

コマンド

Windows + R から 「ファイル名を指定して実行」ダイアログを開き、 CMDと入力して、コマンドプロンプトを開きます。
開いたら C:\Users\nekoha> の様に、ユーザディレクトリがカレントディレクトリになっているはず。

ユーザディレクトリのDownloadsを消して、F:\downloadsに向けます。

rmdir /s/q Downloads
mklink /D Downloads F:\downloads

これで作業は完了です!

mklink コマンドメモ

せっかくなのでmklinkについてもメモ。
ディレクトリにシンボリックリンクを張る場合は/Dオプションが必要になります。

mklink /D [新しいディレクトリ名] [リンク先(実体)のディレクトリ名]

ファイルの場合は/Dオプション不要。

mklink /D [新しいファイル名] [リンク先(実体)のファイル名]

fromtoの関係を to, fromの順で書くので紛らわしいですね。
逆に書くと「ローカル NTFS ボリュームは、操作を完了する必要があります。」の様にエラーメッセージが出ます。

参考リンク