「CMDは現在のディレクトリとしてUNCパスをサポートしていません」をどのように処理しますか?


24

ディレクトリを次のようなファイルサーバーに変更しようとしています。

cd \\someServer\\someStuff\

ただし、次のエラーが表示されます。

CMDは現在のディレクトリとしてUNCパスをサポートしていません

そのディレクトリに移動するためのオプションは何ですか?


回答:


34

スクリプトを作成することを検討している場合、pushdpopdコマンドについて学ぶことは常に役立ちます。スクリプトが実行されるマシンですでに使用されているドライブ文字がわからない場合があり、次に使用可能なドライブ文字を取得するだけで済みます。以来net use、ドライブを指定する必要があります、あなたは簡単に使用することができpushd \\server\folder、その後とpopd、あなたが完了したら。


ドライブ文字の代わりに「*」を指定すると、net useはZAから最初に使用可能なドライブチェックを使用します。:Zに\\サーバー\共有をマップするマップされたドライブ:なしZとそれほどの純使用* \\サーバー\共有"
Zypher

ただし、スクリプトの残りの目的のために、どのドライブ文字がマップされたかはわかりません。
tomfanning

@tomfanningコマンドプロンプトからこれ(wmic logicaldisk get caption、providername、drivetype、volumename)を使用してドライブ文字を検索し、\\ servername \ sharenameを探して出力を解析します。serverfault.com/questions/62578/...
クリス・マグナソン

1
@pk。スクリプトを実行する前にクラッシュした場合はどうしますpopdか?
パセリエ

15

または、シェルをPowerShellに切り替えることもできます。UNCパスを完全にサポートしています。


explorer.exeが削除しようとしているファイルのハンドルを持っている場合を除きます。エクスプローラーウィンドウを閉じた場合でも、PS FileSystemプロバイダー(プロバイダーであると仮定)は、おそらく内部でexplorer.exeを使用すると思います。または、プロバイダーなしでUNCを使用する方法があると言っていますか?
-JohnZaj

11

net useネットワークドライブをUNCパスにマップし、マップされたドライブを参照するために使用できます。


2
確かに、これはコマンドラインから実行する唯一の方法ですが、スローアウェイコマンド(つまり、一度だけ実行すること)以外にこれを使用する場合は注意してください。マッピングされているが接続されていない、複数のユーザー名:(
Mark Henderson

1
このディレクトリに変更することはできませんが、それでもコマンドで使用できます。dir \\ someserver \ stuff call \\ someserver \ stuff \ whatever.bat
Benoit

1
実際には、\\ someserver \ shareを使用できる可能性があります...それを行うには、reg hackが必要です:
バートシルバース

@BartSilverstrim、どうやって?
パセリエ

2

ここでpushdの少し長い説明:http ://shortfastcode.blogspot.com/2010/05/how-to-deal-with-cmd-does-not-support.html


1

cmd対処できるようにドライブを明示的にマッピングするだけでなく、他のユーティリティでも必要になる場合があるため、PowerShellなどの代替コマンドシェルを試すこともできます。


1

これはWin8x64で私のために働いた:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

HKCUでもこれを行うことができるはずです。ログオフして再度ログオンするようにしてください。


1

@pkはpushdとpopdを使用するため、ここに例を示します。

pushdを使用して一時的な仮想ドライブを作成し、完了したらpopdを実行して一時的な仮想ドライブを削除します

:selectFolder
REM Confirm which Folder structure
set /p location="Delete files for which QA environment: (P)retoria, (C)ape, (L)uanda or (Q)uit? (C/L/P/Q)"
REM  I option allows for upper and lower case
if /I "%location%"=="C" set folder="\\Tfwcqa\tfwcqa\EORDERS"
if /I "%location%"=="L" set folder="\\Tfluaqa\tfluaqa\EORDERS"
if /I "%location%"=="P" set folder="\\Tfptaqa\tfptaqa\EORDERS"
if /I "%location%"=="Q" goto endBatch

REM you can not cd to a network drive so we use pushd to create a temporary virtual drive
REM cd /d %folder%
pushd %folder%

DIR /S

REM popd deletes the temporary virtual drive
popd

0

ここでjunctionコマンドは機能しませんか?


1
そうは思わないでください。ジャンクションはローカルディレクトリに対してのみ機能します。
ベルゼムス2009

動作しますか?ウィキペディアの記事から:「ジャンクションポイントはローカルボリューム上のディレクトリにのみリンクできます。リモート共有へのジャンクションポイントはサポートされていません。」
ピーターモーテンセン

@#%!# あなたが正しい。私はそれがマウントコマンドのようなものだと思っていましたが、2年前に調べたときにこの問題があったことを忘れていました。ため息 申し訳ありません...
バートSilverstrim

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.