Bagaimana Anda menangani "CMD tidak mendukung jalur UNC sebagai direktori saat ini"?

Jawaban:

34

Jika Anda mempertimbangkan untuk menuliskannya, selalu bermanfaat untuk mempelajari tentang pushddan popdperintah. Kadang-kadang Anda tidak bisa memastikan apa huruf drive yang sudah digunakan pada mesin yang script akan berjalan dan Anda hanya perlu mengambil huruf drive yang tersedia berikutnya. Karena net useakan meminta Anda menentukan drive, Anda cukup menggunakan pushd \\server\folderdan kemudian popdsetelah selesai.

pk.
sumber
Jika Anda menentukan '*' daripada menggunakan huruf kandar, gunakan drive pertama yang tersedia yang diperiksa dari ZA. jadi 'net use * \\ server \ share' tanpa Z: drive yang dipetakan akan memetakan \\ server \ share ke Z:
Zypher
Tetapi kemudian Anda tidak tahu apa huruf drive yang dipetakan, untuk tujuan sisa skrip.
tomfanning
@tomfanning Anda dapat menemukan huruf drive dengan menggunakan ini (wmic logicaldisk mendapatkan keterangan, pemberi nama, drivetype, volumename) dari command prompt dan kemudian parsing output mencari \\ servername \ sharename Anda. serverfault.com/questions/62578/…
Chris Magnuson
1
@ pk. Bagaimana jika skrip macet sebelum berjalan popd?
Pacerier
15

Atau Anda bisa mengganti shell Anda ke PowerShell . Ini memiliki dukungan lengkap untuk jalur UNC.

Berzemus
sumber
Kecuali ketika explorer.exe memiliki pegangan pada file yang Anda coba hapus. Bahkan dengan jendela explorer ditutup, saya pikir penyedia FileSystem PS (menganggap itu penyedia) mungkin menggunakan explorer.exe di bawah tenda. atau apakah Anda mengatakan ada cara untuk menggunakan UNC tanpa penyedia?
JohnZaj
11

Anda dapat menggunakan net useuntuk memetakan drive jaringan ke jalur UNC dan kemudian menelusuri ke drive yang dipetakan.

Sam Cogan
sumber
2
Benar ini adalah satu-satunya cara untuk melakukannya dari baris perintah, tetapi berhati-hatilah menggunakan ini untuk apa pun kecuali perintah membuang (yaitu hal-hal yang hanya Anda lakukan sekali) karena jika tidak, Anda akan mengalami masalah dengan drive yang tidak dipetakan, atau sedang dipetakan tetapi tidak terhubung, dan beberapa nama pengguna :(
Mark Henderson
1
Anda tidak dapat mengubah ke direktori ini, tetapi Anda masih dapat menggunakannya dalam perintah: dir \\ someserver \ stuff call \\ someserver \ stuff \ whatever.bat
Benoit
1
Sebenarnya Anda mungkin dapat menggunakan \\ someserver \ share ... Anda hanya perlu reg hack untuk melakukannya :-)
Bart Silverstrim
@ BartSilverstrim, Bagaimana?
Pacerier
1

Selain memetakan drive secara eksplisit sehingga cmddapat mengatasinya, yang mungkin juga dibutuhkan oleh utilitas lain, Anda juga dapat mencoba shell perintah alternatif seperti PowerShell.

David Spillett
sumber
1

Ini bekerja untuk saya di Win8x64:

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

Anda harus dapat melakukan ini di HKCU juga, pastikan Anda log off dan kembali lagi.

JohnZaj
sumber
1

sesuai @pk gunakan pushd & popd, berikut adalah contohnya.

gunakan pushd untuk membuat drive virtual sementara dan setelah selesai lakukan popd untuk menghapus drive virtual sementara

: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
AquaAlex
sumber
0

Bukankah perintah persimpangan akan bekerja di sini?

Bart Silverstrim
sumber
1
Jangan kira begitu, persimpangan hanya berfungsi untuk direktori lokal.
Berzemus
Apakah itu bekerja? Dari artikel Wikipedia: "Titik persimpangan hanya dapat menautkan ke direktori pada volume lokal; titik persimpangan ke saham jarak jauh tidak didukung."
Peter Mortensen
@#%!# kamu benar. Saya berpikir itu seperti perintah mount, lupa saya punya masalah ini ketika saya melihatnya dua tahun lalu. sigh Sorry ...
Bart Silverstrim
0

Hei, ini satu untuk dicoba ...

Buka halaman ini dan cari "allow unc path" ... apakah itu akan berhasil?

Ada lebih banyak latar belakang di sini dan di sini

Bart Silverstrim
sumber
Pencarian tidak membuahkan hasil.
Pacerier