📘

"You must enter full path with drive letter"と円マーク(¥)・バックスラッシュ(\)問題

2023/11/24に公開

まえがき

Windowsで、インストーラー(nvm-setup.exeとか)を実行してる最中、パスを入力したらこんなエラーに出会ったあなたへこの記事を贈る。


ちなみに、検索エンジン(Google)と生成系AI(ChatGPT)を使った問題解決の手引書にもなるから最後まで読んで欲しいな~

↑ イラスト:DALL-E 3

エラー "You must enter full path with drive letter"

まずは解読

TypeScriptで開発したいな~と、Node.js のバージョン管理ツールである「nvm」のインストールをWindows環境で行い、パスはC:¥nvmと答えた。

「ちゃんとパスを入力してね」って言われてるのは分かる、、でもどうすれば、、ってなったら次に進もう。

Google検索

とりあえずエラー文をつっこんで検索!
こんな記事に当たった。
https://answers.microsoft.com/en-us/windows/forum/all/im-getting-error-window-that-says-this-you-must/1160e8e1-e99c-4b77-abd8-e9bd808c689a
こんな複雑なエラーなのか、、、ってなるはず。でもそんなことはないので安心して欲しい。「ちゃんとパスを入力してね」っていうのはあまりにも一般的なエラー過ぎて検索に引っかからないのだ。
検索エンジンは「キーワードベースの検索」に特化していると言える。
例えば、「CSS 文字 中央揃え」みたいな検索。図解してくれている記事も多くあるし、上位に表示されてるサイトは見やすかったり分かりやすかったりすることも多い。

ChatGPT検索

「自分はどのように入力したのか」「その結果どのようなエラーが出たのか」を記述して「原因」と「解決方法」を調べてみよう!
ChatGPTは「文脈を考慮した応答」に特化していると言える。状況を詳細に伝えてあげれば、それだけ今の自分に寄り添った回答をしてくれる存在だ。
以下のように聞いてみた。

Windows環境で、nvmをセットアップするためにnvm-setup.exeを実行しています。その中でパスの設定を聞かれたため、「C:¥nvm」と答えました。
そうすると以下のようなエラーが出たので、解決方法を教えてください。
You must enter full path with drive letter, for example C:\APP or a UNC path in the form: \server\share.

そしたらこんな答えが!
nvm-setup.exeのインストール中に、指定されたパスが不適切であるためエラーが発生しています。Windowsでのファイルパスはバックスラッシュ \ を使用して指定する必要があります。また、パスの最後にバックスラッシュを含めないことが一般的です。
エラーメッセージには、ドライブレターとフルパスを入力する必要があると述べられています。つまり、C:¥nvm ではなく C:\nvm のように入力する必要があります。しかし、nvm は特定のパスを要求することはなく、デフォルトではユーザーディレクトリ内にインストールされることが一般的です。
解決方法としては、以下の手順に従ってパスを正しく設定してください:
インストールプロセスで再度パスを入力する際には、C:\nvm のようにバックスラッシュを使用してください。(長いので後略)

C:\nvmというパスを入力してください」 という解決方法が提示された。
なるほど、欲しかった情報だ!

もちろんそのパスをコピペしてもいいし、もしくは「C:¥nvm」とキーボードでパスを入力してみよう。
そうすると、nvmのセットアップで求められているファイルパスになる。

これはWindows環境において発生する現象なのだ。
試しに半角「¥」キーを押してみよう。すると「\」(バックスラッシュ)になって表示される。

円マーク(¥)・バックスラッシュ(\)問題

Windowsの環境(かつMSゴシックとか特定のフォント)では、円マーク(¥)とバックスラッシュ(\)はどちらも円マーク(¥)で見えてしまう。

UTF-8コードでは

UTF-8
円(¥) C2A5
バックスラッシュ(/) 5C
というように異なる。

https://blog.apiless.com/2019/06/15/yen-back-slash/

複雑な歴史があるらしい。

総括

検索エンジン + 生成系AI + Webの知識
これで疑問は解決できる!とにかく試行錯誤してみよう。

Discussion