Ich versuche, eine Batchdatei von einer Netzwerkfreigabe auszuführen, erhalte jedoch weiterhin die folgende Meldung: "UNC-Pfad wird nicht unterstützt. Standardmäßig wird das Windows-Verzeichnis verwendet." Die Batch-Datei befindet sich auf \\Server\Soft\WPX5\install.bat
. Während ich als Administrator angemeldet bin, navigiere ich von meinem Windows 7-Desktop \\Server\Soft\WP15\
zu install.bat und doppelklicke darauf. In diesem Fall erhalte ich die Meldung "UNC-Pfad wird nicht unterstützt". Botschaft. Ich habe online einige Vorschläge gefunden, die besagen, dass das Mapping-Laufwerk nicht funktioniert, aber die Verwendung eines symbolischen Links löst dieses Problem, aber der symbolische Link hat bei mir nicht funktioniert. Nachstehend finden Sie den Inhalt meiner Batchdatei. Ich würde mich über jede Unterstützung freuen, die mir dabei helfen kann, das zu erreichen, was ich versuche. Grundsätzlich möchte ich in der Lage sein, die Batch-Datei von auszuführen \\Server\Soft\WP15\install.bat
.
Batch-Dateiinhalt
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
Wie entferne ich den symbolischen Link nach Abschluss der Installation?
quelle
Antworten:
PUSHD und POPD sollten in Ihrem Fall helfen.
Geben Sie
PUSHD /?
in der Befehlszeile weitere Informationen ein.quelle
pushd %~dp0
sollte das Verzeichnis in das Verzeichnis geändert werden, in dem sich Ihre bat-Datei befindet. Die Warnung wird weiterhin ausgedruckt, sollte dann aber wie gewohnt funktionieren. Wenn die bat-Datei an anderer Stelle '% ~ dp0' verwendet, kann dies zu Problemen führen. In diesem Fall können Sie feststellen, ob%~dp0
mit '//' am Anfang der bat-Datei begonnen wird, und wenn japushd
, und dann ausführen Dann wieder Fledermausdateigoto :EOF
. Dadurch wird es im neu zugeordneten Verzeichnis ausgeführt.PUSHD
führen Sie das zweite Skript überCMD /C
, und folgen Sie, dass mitPOPD
. Die Steuerung kehrt nach demCMD /C
Beenden des Skripts zum übergeordneten Skript zurück , auch wenn es durch STRG-C beendet wurde.Es gibt eine Registrierungseinstellung , um diese Sicherheitsüberprüfung zu vermeiden (die Verwendung erfolgt jedoch auf eigenes Risiko):
Hinweis: Unter Windows 10 Version 1803 befindet sich die Einstellung anscheinend unter HKLM: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor
quelle
Ich denke, das
cls
ist die beste Antwort. Die UNC-Nachricht wird ausgeblendet, bevor sie angezeigt werden kann. Ich habe es mit einem@pushd %~dp0
Recht danach kombiniert, so dass es so aussieht, als würde man das Skript öffnen und den Ort in einem Schritt zuordnen, um weitere UNC-Probleme zu vermeiden.Anmerkungen:
pushd
ändert Ihr Arbeitsverzeichnis in den Speicherort der Skripte auf dem neuen zugeordneten Laufwerk.popd
am Ende, um das zugeordnete Laufwerk zu bereinigen.quelle
popd
am Ende (Windows 7), sonst blieben die zugeordneten Laufwerke hängen, nachdem das Fenster geschlossen wurde.Grundsätzlich können Sie es nicht über einen UNC-Pfad ausführen, ohne diese Nachricht zu sehen.
Normalerweise setze ich einfach ein
CLS
oben in das Skript, damit ich diese Nachricht nicht sehen muss. Geben Sie dann den vollständigen Pfad zu den Dateien in der Netzwerkfreigabe an, die Sie verwenden müssen.quelle
Ich musste in der Lage sein, nur im Windows Explorer die Serverfreigabe zu durchsuchen und dann auf die Batchdatei zu doppelklicken. @dbenham führte mich zu einer einfacheren Lösung für mein Szenario (ohne die
popd
Sorgen):quelle
Anstatt den Stapel direkt vom Explorer aus zu starten, erstellen Sie eine Verknüpfung zum Stapel und legen Sie das Startverzeichnis in den Eigenschaften der Verknüpfung auf einen lokalen Pfad wie% TEMP% oder ähnliches fest.
Verwenden Sie den Befehl rmdir, um die symbolische Verknüpfung zu löschen.
quelle
Ich bin kürzlich auf dasselbe Problem gestoßen, als ich mit einer Batchdatei auf einem Netzwerkfreigabe-Laufwerk in Windows 7 gearbeitet habe.
Eine andere Möglichkeit, die für mich funktioniert hat, bestand darin, den Server über Windows Explorer einem Laufwerk zuzuordnen: Extras -> Netzwerklaufwerk zuordnen. Geben Sie ihm einen Laufwerksbuchstaben und einen Ordnerpfad zu \ yourserver. Da ich mit der Netzwerkfreigabe arbeite, ist die Zuordnung häufig einfacher und der Fehler "UNC-Pfad wird nicht unterstützt" wurde behoben.
quelle
Meine Situation ist nur ein bisschen anders. Ich führe beim Start eine Batchdatei aus, um die neueste Version interner Geschäftsanwendungen zu verteilen.
In dieser Situation verwende ich den Windows-Registrierungsausführungsschlüssel mit der folgenden Zeichenfolge
Dadurch werden beim Start zwei Befehle in der richtigen Reihenfolge ausgeführt. Kopieren Sie zuerst die Batchdatei lokal in ein Verzeichnis, zu dem der Benutzer berechtigt ist. Führen Sie dann dieselbe Batchdatei aus. Ich kann ein lokales Verzeichnis c: \ InternalApps erstellen und alle Dateien aus dem Netzwerk kopieren.
Dies ist wahrscheinlich zu spät, um die Frage des Originalplakats zu lösen, aber es kann jemand anderem helfen.
quelle
Dies ist der RegKey, den ich verwendet habe:
quelle
Meine env windows10 2019 lts Version und ich füge diese beiden Binray-Daten hinzu, behebe diesen Fehler
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
DisableUNCCheck-Wert 1Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor
DisableUNCCheck-Wert 1quelle
Dies ist ein sehr alter Thread, aber ich benutze immer noch Windows 7. :-)
Es gibt einen Punkt, den anscheinend niemand berücksichtigt hat, der wahrscheinlich auch Windows 10-Benutzern helfen würde.
Wenn Befehlserweiterungen aktiviert sind, akzeptiert der PUSHD-Befehl zusätzlich zum normalen Laufwerksbuchstaben und -pfad Netzwerkpfade.
Die naheliegende und einfachste Antwort könnte darin bestehen, Befehlserweiterungen im Batch-Skript zu aktivieren, wenn Sie PUSHD verwenden möchten. Zumindest sollte dies die Probleme verringern, die bei der Verwendung von PUSHD mit einem Netzwerkpfad auftreten können.
quelle
Das Bearbeiten von Windows-Registrierungen lohnt sich nicht und ist nicht sicher. Verwenden
Map network drive
und laden Sie die Netzwerkfreigabe so, als ob sie von einem Ihrer lokalen Laufwerke geladen würde.quelle