“CMD, geçerli dizinler olarak UNC yollarını desteklemiyor” ile nasıl başa çıkıyorsunuz?


Yanıtlar:


34

Komut dosyasını yazmayı düşünüyorsanız, pushdve popdkomutlarını öğrenmek her zaman yardımcı olacaktır . Bazen, komut dosyası üzerinde çalışacak olan makinede zaten hangi sürücü harflerinin kullanıldığından emin olamazsınız ve bir sonraki kullanılabilir sürücü harfini almanız gerekir. Yana net usesürücüyü belirlemenizi gerektirir, sadece kullanabilirsiniz pushd \\server\foldersonra ve popdİşiniz bittiğinde.


Bir sürücü harfi yerine '*' belirtirseniz net use ZA'dan kullanılabilir ilk sürücü kontrolünü kullanır. yani 'net use * \\ server \ share' ile Z: eşlenen sürücü eşleştirilmez \: \ \ server \ share Z:
Zypher

Ancak, senaryo geri kalanı için hangi sürücü harfinin eşlendiğini bilmiyorsunuz.
tomfanning 5'09

@tomfanning Sürücü harfini komut satırından (wmic logicaldisk altyazı, sağlayıcı adı, drivetype, volumename) komut isteminden bulabilir ve \ \ servername \ sharename adınızı arayan çıktıyı çözümleyebilirsiniz. serverfault.com/questions/62578/…
Chris Magnuson

1
@pk. Ya senaryo sizin yayınlanmadan önce çöktü ise popd?
Pacerier

15

Veya kabuğunuzu PowerShell'e geçirebilirsiniz . UNC yolları için tam destek var.


Explorer.exe, silmeye çalıştığınız dosyada bir tutamağa sahipse dışında. Explorer penceresi kapalı olsa bile, PS FileSystem sağlayıcısının (bir sağlayıcı olduğunu varsayarak) muhtemelen kaputun altındaki explorer.exe'yi kullandığını düşünüyorum. veya UNC'yi sağlayıcı olmadan kullanmanın bir yolu olduğunu mu söylüyorsunuz?
JohnZaj

11

Sen kullanabilirsiniz net useUNC yoluna bir ağ sürücüsüne ve ardından eşlenen sürücüye göz atmak için.


2
Doğru, komut satırından yapmanın tek yolu bu, ancak bunu atma komutları dışında bir şey için kullanmaktan çekinmeyin (yani yalnızca bir kez yaptığınız şeyler) çünkü aksi halde sürücü eşleştirilmiyorken veya haritalandı ancak bağlanmadı ve birden fazla kullanıcı adı :(
Mark Henderson

1
Bu dizinde değişiklik yapamazsınız, ancak yine de komutlarda kullanabilirsiniz: dir \\ someserver \ stuff call \\ someserver \ stuff \ whatever.bat
Benoit

1
Aslında \\ someserver \ share kullanabiliyor olabilirsiniz ... sadece bunu yapmak için reg kesmeniz gerekir :-)
Bart Silverstrim

@BartSilverstrim, Nasıl?
Pacerier


1

Bir sürücünün açıkça cmdbaşa çıkabilmesi için, diğer yardımcı programların da ihtiyaç duyabileceği şekilde eşleştirmenin yanı sıra , PowerShell gibi alternatif bir komut kabuğu da deneyebilirsiniz.


1

Bu benim için Win8x64'te çalıştı:

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

Bunu HKCU'da da yapabilmelisiniz, oturumu kapatıp tekrar açtığınızdan emin olun.


1

pk kullanımına göre pushd ve popd, işte bir örnek.

geçici sanal sürücü oluşturmak için pushd kullanın ve tamamlandıktan sonra geçici sanal sürücüyü silmek için bir popd yapın

: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

Olmaz kavşak komut burada işi?


1
Sanma, kavşak sadece yerel dizinler için işe yarıyor.
Berzemus

Çalışıyor mu? Vikipedi makalesinden: "Bağlantı noktaları yalnızca yerel bir birimdeki dizinlere bağlanabilir; uzak paylaşımlara bağlantı noktaları desteklenmez."
Peter Mortensen,

@#%!# haklısın. İki ay önce baktığımda, bunun bir takma komut gibi olduğunu düşünüyordum. nefes Maalesef ...
Bart Silverstrim

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.