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.


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.


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.


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.


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.


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

0

Bukankah perintah persimpangan akan bekerja di sini?


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.