Engineer as a Lifestyle @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

Windows共有サーバーにアクセス

結論

結局Windows共有サーバーのディレクトリはcmd.exeではカレントディレクトリに設定できないのか?ドライブ文字を割り当ててCD /D "アドレス"かpushdを使えばカレントディレクトリにできるよ.*1

試行錯誤

WindowsXPのcmd.exe(コマンドプロンプト)でLandisk(デフォルトのUNCが\\landisk\disk\)にアクセスしようとしてcdしてみると

C:\>cd \\landisk\disk\
'\\landisk\disk\'
CMD では UNC パスは現在のディレクトリとしてサポートされません。

ええー,UNCってなんじゃい.

んーよくわかんないけどこのままではできないらしい.そういえばマイコンピュータでZドライブとかでてきてアイコンがいかにも管で繋がってますよっぽいのあったよな,と思いつきgoogle:ネットワークドライブ 割り当てからやり方を理解する.

  1. マイコンピュータを右クリックしてネットワークドライブの割り当てを選ぶ
  2. ドライブはここではZ:を選びフォルダの項にUNC(僕の場合\\landisk\disk\)を入れてOK

でカレントディレクトリをZドライブにしてみる(最初/dスイッチが必要な事を知らずにできないしエラーもでないし…とかつっこんでた.)

C:\>cd /d z:\

Z:\>

さて,cdでネットワークドライブに移動できたが,途中で便利なpushd/popdというコマンドpushdとpopdがあることをhttp://sephiebrain.jp/html/diarys/200402.html(2004/2/12 (木)22:17頃)で知る.

C:\>pushd \\landisk\disk

Y:\>

とUNCを指定すると,一時的にドライブ文字を割り当ててそこに移動するということらしい.あとでpopdするとpushdしたときのディレクトリに戻って割り当てられたドライブも消えます.つまり元の場所を記憶しUNCも適宜解釈してなんとかするcdと考えればいいんでしょうか?
ちなみにcygwinのcdはドライブ変更もuncでもそのままでいけます.パス区切り文字はスラッシュにするかエスケープ("\\landisk\disk"なら"\\\\landisk\\disk")にしないとだめっぽいけど

tenkoma@hoge /cygdrive/c
$ cd z:/

tenkoma@hoge /cygdrive/z
$ cd //landisk/disk

tenkoma@hoge //landisk/disk
$

まとめ

  • ブログの記事にしようとして調べると自己解決
  • /?でヘルプ嫁

追記 2006/9/16

*1:pushdは過去のCDを覚えておいて移動するコマンド