👌
【windows】ネットワーク上のファイルサーバー上でコマンド操作
ファイルサーバ上のディレクトリでコマンド実行できない
$ pnpm init
'\\SVR-NAME\dir-name\my-project\'
上記の現在のディレクトリで CMD.EXE を開始しました。
UNC パスはサポートされません。Windows ディレクトリを既定で使用します。
Windows ディレクトリ(Cドライブ)直下にpackage.jsonが作られてしまう。
マッピングドライブを使用
GPT先生などで調べた解決策
UNC パスをマッピングドライブに変換して、そのドライブ名を使う方法もあります。
例えば、\SVR-NAME\dir-nameを Z: ドライブにマップし、Z:\File.txt のように使用することができます。
仮想のドライブを作って、そこにファイルサーバーを割り当てる?みたいな感じなのかな?
しかしエラー
$ net use Z: \\SVR-NAME\dir-name
システム エラー 67 が発生しました。
ネットワーク名が見つかりません。
【解決策】 IPアドレスでマッピング再挑戦
IPアドレス確認
pingコマンドでIPを確認(IPアドレスが分かればなんでもいい)
$ ping SVR-NAME
SVR-NAME.sample.co.jp [192.168.1.1]に ping を送信しています 32 バイトのデータ:
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=126
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=126
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=126
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=126
192.168.1.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
IPアドレスでドライブ割り当てを設定
net use Z: \\192.168.1.1\dir-name$
ドライブの変更
bash
cd /Z
cmd
Z:
ファイルサーバーのショートカット作成し直し
ちなみにファイルサーバーへのショートカットがUNCパスで作られているとエクスプローラーのアドレスバーに「cmd」って打ったり、VScodeにドラック&ドロップで開いたりした時、terminalの初期ディレクトリもUNCパスになる。(そしてコマンドが使えず本記事の問題が発生する)
いちいちドライブ変更してcdするのはめんどうなので、(この例では)zドライブとしてショートカットを作りなおすと、ローカルディレクトリと同じように、プロジェクトのフォルダをでVScodeで開いたりしても、Terminalを開いた時に期ディレクトリがzドライブの該当ディレクトリになるので、違和感なく使える。
やり方は普通にzドライブのパスでディレクトリを開く。それをショートカットにするだけ。
Discussion