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

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.

pk.
źródło
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.

Berzemus
źródło
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.

Sam Cogan
źródło
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.

David Spillett
źródło
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ś.

JohnZaj
źródło
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
AquaAlex
źródło
0

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

Bart Silverstrim
źródło
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
0

Hej, oto jeden, aby spróbować ...

Przejdź do tej strony i wyszukaj „dopuszczaj ścieżkę unc” ... czy to zadziała?

Jest więcej tła tutaj i tutaj

Bart Silverstrim
źródło
Wyszukiwanie nie przyniosło żadnych rezultatów.
Pacerier