今回はデータをコピーしようとして「パスが長すぎてコピーに失敗」の事例についてご報告します。
エラーメッセージはこんな風にでます。
「対象のパスが長すぎます。」と言うタイトルのウインドウで
「ファイル名の長さは、対象のフォルダーに対して長すぎる可能性があります。短いファイル名に変更して再実行するか、またはより短いパス名がある場所に移動してください。」
というメッセージが出ます。
こういう場合substコマンドで対処します。
subst使い方
とっても簡単です。ちょっとヘルプを見てみますか。
----------------------------------------------
SUBST [ドライブ1: [ドライブ2:]パス]
SUBST ドライブ1: /D
ドライブ1: パスを割り当てる仮想ドライブを指定します。
[ドライブ2:]パス 仮想ドライブに割り当てる物理ドライブとパスを指定します。
/D 置換した (仮想) ドライブを削除します。
現在の仮想ドライブ一覧を表示するときは、パラメーターを指定せずに SUBST と入力してください。
----------------------------------------------
要するにsubstコマンドにドライブレターを指定して、ドライブレターに置き換えるディレクトリパスを続けて指定すると、指定したドライブレターをあるフォルダパスに置き換えることができる、という仕組みです。
実際に使ってみます。
ざっくりとした使い方です。
動作確認用に「c:\temp\test\test\test\test\test\test\test\test\test\test」というフォルダを作ってみました。
図:エクスプローラで見ると…
図:コマンドプロンプトで見たところ
この長ったらしいフォルダをLドライブ「L:」に割り当ててみます。
以下のコマンドを実行
subst L: c:\temp\test\test\test\test\test\test\test\test\test\test
そうすると、Lドライブが生成されて、Lドライブは「c:\temp\test\test\test\test\test\test\test\test\test\test」へのパスとして使うことができるようになります。
図:コマンド実行
図:エクスプローラにLドライブ出現
LドライブはあくまでもCドライブ内のフォルダの一部なので、ドライブとしての情報はCドライブと同一になります。
パスが長すぎるエラーは、「c:\temp\test\test\test\test\test\test\test\test\test\test\テストファイル.txt」のフルパスが長すぎて取り扱えない、というエクスプローラの仕様を回避することができます。
要するに上記のパスで言えば、「L:\テストファイル.txt」と短縮することができるようになるので、パスが長すぎてファイルを取り扱えない、ということにならないようになります。
後始末&片付け
解除はとても簡単です。
subst L: /D
と実行すると割り当てていたドライブレターが消えます。
図:subst削除実行
図:エクスプローラの状態
substで自分のドライブ配下のフォルダにドライブレターを割り当ててローカルドライブとして利用できるとなると、イロイロ使えそうなところがあります。
簡単にパスを短くしたい、とか、簡単にドライブレターを割り当ててローカルドライブを一ドライブ作りたい、と言う場合にはsubstコマンドによるドライブレターの割り当てがお勧めです。