Jak radzisz sobie z „CMD nie obsługuje ścieżek UNC jako bieżących katalogów”?


24

Usiłuję zmienić katalogi na serwer plików, taki jak:

cd \\someServer\\someStuff\

Jednak pojawia się następujący błąd:

CMD nie obsługuje ścieżek UNC jako bieżących katalogów

Jakie są moje opcje, aby przejść do tego katalogu?


Odpowiedzi:


34

Jeśli zastanawiasz się nad jego skryptowaniem, zawsze pomocne jest poznanie poleceń pushdi popd. Czasami nie możesz być pewien, jakie litery dysków są już używane na komputerze, na którym skrypt będzie działał, i po prostu musisz wziąć następną dostępną literę dysku. Ponieważ net usebędziesz musiał określić dysk, możesz po prostu użyć, pushd \\server\foldera następnie popdpo zakończeniu.


Jeśli podasz literę „*” zamiast litery dysku, użycie sieci użyje pierwszego dostępnego sprawdzania dysku od ZA. więc 'użycie netto * \\ serwer \ udostępnianie' bez dysku Z: mapowany dysk zamapowałby \\ serwer \ udostępnienie na Z:
Zypher

Ale wtedy nie wiesz, która litera dysku została zamapowana dla potrzeb reszty skryptu.
tomfanning

@tomfanning Możesz znaleźć literę dysku, używając tego (wmic logicaldisk get caption, Provername, driveetype, volumename) z wiersza poleceń, a następnie przeanalizuj dane wyjściowe w poszukiwaniu \\ servername \ sharename. serverfault.com/questions/62578/…
Chris Magnuson

1
@pk. Co się stanie, jeśli skrypt ulegnie awarii przed uruchomieniem Twojego popd?
Pacerier

15

Lub możesz zmienić swoją powłokę na PowerShell . Ma pełne wsparcie dla ścieżek UNC.


Z wyjątkiem sytuacji, gdy explorer.exe ma uchwyt pliku, który próbujesz usunąć. Nawet jeśli okno Eksploratora jest zamknięte, myślę, że dostawca PS FileSystem (zakładając, że jest dostawcą) prawdopodobnie używa explorer.exe pod maską. czy mówisz, że istnieje sposób na użycie UNC bez dostawcy?
JohnZaj,

11

Możesz użyć net usedo zamapowania dysku sieciowego na ścieżkę UNC, a następnie przejść do zamapowanego dysku.


2
To prawda, że ​​jest to jedyny sposób, aby to zrobić z wiersza polecenia, ale uważaj, aby używać tego do czegokolwiek, z wyjątkiem poleceń wyrzucania (tj. Czynności, które wykonujesz tylko raz), ponieważ w przeciwnym razie wystąpią problemy z brakiem mapowania dysku zmapowane, ale nie połączone, i wiele nazw użytkowników :(
Mark Henderson

1
Nie możesz przejść do tego katalogu, ale nadal możesz go używać w poleceniach: dir \\ someserver \ stuff call \\ someserver \ stuff \okolwiek.bat
Benoit

1
Właściwie możesz być w stanie użyć \\ someserver \ share ... wystarczy hack reg, aby to zrobić :-)
Bart Silverstrim

@BartSilverstrim, jak?
Pacerier


1

Oprócz jawnego mapowania dysku, aby cmdmógł sobie poradzić, co może być również potrzebne innym narzędziom, możesz również wypróbować alternatywną powłokę poleceń, taką jak PowerShell.


1

To działało dla mnie w Win8x64:

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

Powinieneś być w stanie to zrobić również w HKCU, po prostu upewnij się, że wylogowałeś się i ponownie zalogowałeś.


1

jak na @pk użyj pushd & popd, oto przykład.

użyj pushd, aby utworzyć tymczasowy dysk wirtualny, a po zrobieniu popd, aby usunąć tymczasowy dysk wirtualny

: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

Czy polecenie skrzyżowania nie działałoby tutaj?


1
Nie sądzę, skrzyżowanie działa tylko w przypadku lokalnych katalogów.
Berzemus

Czy to działa? Z artykułu w Wikipedii: „Punkty połączeń mogą prowadzić tylko do katalogów w lokalnym woluminie; Punkty połączeń do zdalnych udziałów nie są obsługiwane”.
Peter Mortensen,

@#%!# masz rację. Myślałem, że to było jak polecenie montowania, zapomniałem, że miałem ten problem, kiedy patrzyłem na to dwa lata temu. westchnienie Przepraszam ...
Bart Silverstrim

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.