Próbuję uruchomić plik wsadowy z udziału sieciowego, ale wciąż pojawia się następujący komunikat: „Ścieżki UNC nie są obsługiwane. Domyślnie jest to katalog systemu Windows”. Plik wsadowy znajduje się na \\Server\Soft\WPX5\install.bat
. Gdy jestem zalogowany jako administrator, z pulpitu Windows 7 przechodzę do pliku \\Server\Soft\WP15\
install.bat i dwukrotnie klikam go, wtedy pojawia się komunikat „Ścieżki UNC nie są obsługiwane”. wiadomość. Znalazłem kilka sugestii online, w których stwierdzono, że dysk mapowania nie zadziała, ale użycie dowiązania symbolicznego rozwiąże ten problem, ale łącze symboliczne nie działa dla mnie. Poniżej znajduje się zawartość mojego pliku wsadowego. Byłbym wdzięczny za każdą pomoc, która może mi pomóc w realizacji tego, co próbuję zrobić. Zasadniczo chcę mieć możliwość uruchamiania pliku wsadowego z \\Server\Soft\WP15\install.bat
.
Zawartość pliku wsadowego
mklink /d %userprofile%\Desktop\WP15 \\server\soft\WP15
\\server\soft\WP15\setup.exe
robocopy.exe "\\server\soft\WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s \\server\soft\WPX5\Custom\Migrate.reg
Jak również usunąć dowiązanie symboliczne po zakończeniu instalacji?
źródło
Odpowiedzi:
PUSHD i POPD powinny pomóc w twoim przypadku.
Wpisz
PUSHD /?
w wierszu poleceń, aby uzyskać więcej informacji.źródło
pushd %~dp0
To powinno spowodować zmianę katalogu na ten, który zawiera plik bat. Nadal wydrukuje ostrzeżenie, ale powinno wtedy działać jak zwykle. Jeśli plik bat używa „% ~ dp0” w innym miejscu, mogą występować z tym problemy, w takim przypadku możesz wykryć, czy%~dp0
zaczyna się od „//” na początku pliku bat, a jeśli takpushd
, a następnie uruchomić bat ponowniegoto :EOF
. Spowoduje to uruchomienie go w nowo zmapowanym katalogu.PUSHD
wykonaj drugi skrypt za pomocąCMD /C
, a następnie za pomocąPOPD
. Control powróci do skryptu nadrzędnego po zakończeniu działaniaCMD /C
skryptu, nawet jeśli został zakończony przez CTRL-C.Istnieje ustawienie rejestru, które pozwala uniknąć tej kontroli bezpieczeństwa (jednak używaj jej na własne ryzyko):
Uwaga: w systemie Windows 10 w wersji 1803 ustawienie wydaje się znajdować się pod HKLM: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor
źródło
Czuję, że
cls
to najlepsza odpowiedź. Ukrywa wiadomość UNC, zanim ktokolwiek ją zobaczy. Połączyłem to z@pushd %~dp0
prawym after, aby wyglądało na to, że otwiera się skrypt i mapuje lokalizację w jednym kroku, zapobiegając tym samym dalszym problemom z UNC.Uwagi:
pushd
zmieni twój katalog roboczy na lokalizację skryptów na nowym zmapowanym dysku.popd
na koniec, aby wyczyścić zmapowany dysk.źródło
popd
na końcu (Windows 7), w przeciwnym razie zmapowane dyski utknęły po zamknięciu okna.Zasadniczo nie można go uruchomić ze ścieżki UNC bez zobaczenia tego komunikatu.
Zwykle po prostu umieszczam znak
CLS
na górze skryptu, więc nie muszę widzieć tej wiadomości. Następnie określ pełną ścieżkę do plików w udziale sieciowym, których chcesz użyć.źródło
Musiałem mieć możliwość przeglądania udziału serwera w Eksploratorze Windows, a następnie dwukrotnym kliknięciem uruchom plik wsadowy. @dbenham doprowadziło mnie do łatwiejszego rozwiązania dla mojego scenariusza (bez
popd
zmartwień):źródło
Zamiast uruchamiać pakiet bezpośrednio z eksploratora - utwórz skrót do wsadu i ustaw katalog początkowy we właściwościach skrótu na ścieżkę lokalną, taką jak% TEMP% lub coś w tym stylu.
Aby usunąć dowiązanie symboliczne, użyj polecenia rmdir.
źródło
Ostatnio napotkałem ten sam problem, pracując z plikiem wsadowym na dysku sieciowym w systemie Windows 7.
Innym sposobem, który zadziałał, było mapowanie serwera na dysk za pomocą Eksploratora Windows: Narzędzia -> Mapuj dysk sieciowy. Nadaj mu literę dysku i ścieżkę do folderu \ twój serwer. Ponieważ pracuję z udziałem sieciowym, często mapowanie do niego sprawia, że jest to wygodniejsze i rozwiązało błąd „Ścieżki UNC nie są obsługiwane”.
źródło
Moja sytuacja jest trochę inna. Podczas uruchamiania uruchamiam plik wsadowy, aby rozpowszechniać najnowszą wersję wewnętrznych aplikacji biznesowych.
W tej sytuacji używam klucza uruchamiania rejestru systemu Windows z następującym ciągiem
Spowoduje to uruchomienie dwóch poleceń podczas uruchamiania we właściwej kolejności. Najpierw skopiuj plik wsadowy lokalnie do katalogu, do którego użytkownik ma uprawnienia. Następnie wykonuję ten sam plik wsadowy. Mogę utworzyć katalog lokalny c: \ InternalApps i skopiować wszystkie pliki z sieci.
Prawdopodobnie jest już za późno, aby rozwiązać pytanie pierwotnego autora, ale może to pomóc komuś innemu.
źródło
Oto klucz RegKey, którego użyłem:
źródło
To bardzo stary wątek, ale nadal używam Windows 7. :-)
Jest jeden punkt, którego nikt nie wziął pod uwagę, co prawdopodobnie pomogłoby również użytkownikom systemu Windows 10.
Jeśli rozszerzenia poleceń są włączone, polecenie PUSHD akceptuje ścieżki sieciowe oprócz normalnej litery dysku i ścieżki.
Więc oczywistą - i najprostszą - odpowiedzią może być włączenie rozszerzeń poleceń w skrypcie wsadowym, jeśli zamierzasz używać PUSHD. Powinno to przynajmniej zmniejszyć problemy, które możesz mieć podczas używania PUSHD ze ścieżką sieciową.
źródło
Moja wersja env windows10 2019 lts i dodaję te dwa dane binray, napraw ten błąd
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
Wyłącz UNCCheck wartość 1Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor
Wyłącz UNCCheck wartość 1źródło
Edytowanie rejestrów systemu Windows nie jest tego warte i nie jest bezpieczne, używaj
Map network drive
i ładuj udział sieciowy tak, jakby był ładowany z jednego z dysków lokalnych.źródło