J'essaie d'exécuter un fichier de commandes à partir d'un partage réseau, mais je continue à recevoir le message suivant: "Le chemin UNC n'est pas pris en charge. La valeur par défaut dans le répertoire Windows." Le fichier de commandes se trouve sur \\Server\Soft\WPX5\install.bat
. En étant connecté en tant qu'administrateur, à partir de mon bureau Windows 7, je navigue \\Server\Soft\WP15\
et double-clique sur install.bat, c'est à ce moment que j'obtiens le "chemin UNC non pris en charge". message. J'ai trouvé quelques suggestions en ligne indiquant que le lecteur de cartographie ne fonctionnera pas, mais que l'utilisation d'un lien symbolique résoudra ce problème, mais le lien symbolique n'a pas fonctionné pour moi. Ci-dessous le contenu de mon fichier de commandes, j'apprécierais toute aide pouvant m'aider à accomplir ce que j'essaie de faire. Fondamentalement, je veux pouvoir exécuter le fichier de commandes à partir de \\Server\Soft\WP15\install.bat
.
Contenu du fichier batch
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
De plus, comment supprimer le lien symbolique une fois l'installation terminée?
la source
Réponses:
PUSHD et POPD devraient vous aider dans votre cas.
Tapez à
PUSHD /?
partir de la ligne de commande pour plus d'informations.la source
pushd %~dp0
Cela devrait lui permettre de changer le répertoire pour celui contenant votre fichier bat. Il imprimera toujours l'avertissement, mais il devrait alors fonctionner comme d'habitude. Si le fichier bat utilise '% ~ dp0' ailleurs, il peut avoir des problèmes avec cela, dans ce cas, vous pouvez détecter si%~dp0
commence par '//' au début du fichier bat, et si c'est le caspushd
, puis exécutez le bat à nouveau, alorsgoto :EOF
. Cela entraînera son exécution dans le répertoire nouvellement mappé.PUSHD
, exécutez le 2ème script viaCMD /C
, et suivez-le avecPOPD
. Le contrôle retournera au script parent une fois leCMD /C
script terminé, même s'il a été arrêté par CTRL-C.Il existe un paramètre de registre pour éviter cette vérification de sécurité (utilisez-le à vos risques et périls):
Remarque: sur Windows 10 version 1803, le paramètre semble se trouver sous HKLM: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor
la source
Je pense que
cls
c'est la meilleure réponse. Il masque le message UNC avant que quiconque puisse le voir. Je l'ai combiné avec un@pushd %~dp0
juste après pour qu'il semble ouvrir le script et mapper l'emplacement en une seule étape, évitant ainsi d'autres problèmes UNC.Remarques:
pushd
changera votre répertoire de travail à l'emplacement des scripts dans le nouveau lecteur mappé.popd
à la fin, pour nettoyer le lecteur mappé.la source
popd
de la fin (Windows 7), sinon les lecteurs mappés restaient bloqués après la fermeture de la fenêtre.Fondamentalement, vous ne pouvez pas l'exécuter à partir d'un chemin UNC sans voir ce message.
Ce que je fais habituellement, c'est simplement mettre un
CLS
en haut du script pour ne pas avoir à voir ce message. Ensuite, spécifiez le chemin d'accès complet aux fichiers du partage réseau que vous devez utiliser.la source
J'avais besoin de pouvoir simplement parcourir l'explorateur Windows dans le partage de serveur, puis double-cliquez sur lancer le fichier de commandes. @dbenham m'a conduit à une solution plus simple pour mon scénario (sans les
popd
soucis):la source
Au lieu de lancer le lot directement depuis l'explorateur - créez un raccourci vers le lot et définissez le répertoire de départ dans les propriétés du raccourci sur un chemin local tel que% TEMP% ou quelque chose.
Pour supprimer le lien symbolique, utilisez la commande rmdir.
la source
J'ai récemment rencontré le même problème en travaillant avec un fichier de commandes sur un lecteur de partage réseau sous Windows 7.
Une autre façon qui a fonctionné pour moi était de mapper le serveur sur un lecteur via l'Explorateur Windows: Outils -> Mapper le lecteur réseau. Donnez-lui une lettre de lecteur et un chemin de dossier vers \ yourserver. Étant donné que je travaille avec le partage réseau, le mappage le rend plus pratique et a résolu l'erreur «Les chemins UNC ne sont pas pris en charge».
la source
Ma situation est juste un peu différente. J'exécute un fichier batch au démarrage pour distribuer la dernière version des applications métier internes.
Dans cette situation, j'utilise la clé d'exécution du registre Windows avec la chaîne suivante
Cela exécute deux commandes au démarrage dans le bon ordre. Copiez d'abord le fichier de commandes localement dans un répertoire sur lequel l'utilisateur est autorisé. Puis exécutez le même fichier batch. Je peux créer un répertoire local c: \ InternalApps et copier tous les fichiers du réseau.
C'est probablement trop tard pour résoudre la question de l'affiche originale, mais cela peut aider quelqu'un d'autre.
la source
Voici la RegKey que j'ai utilisée:
la source
Ma version env windows10 2019 lts et j'ajoute ces deux données binray, corrige cette erreur
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
Désactiver UNCC Vérifier la valeur 1Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor
Désactiver UNCC Vérifier la valeur 1la source
C'est un fil très ancien, mais j'utilise toujours Windows 7. :-)
Il y a un point que personne ne semble avoir pris en compte, ce qui aiderait probablement les utilisateurs de Windows 10 également.
Si les extensions de commande sont activées, la commande PUSHD accepte les chemins réseau en plus de la lettre de lecteur et du chemin normaux.
La réponse la plus évidente - et la plus simple - pourrait donc être d'activer les extensions de commande dans le script batch, si vous avez l'intention d'utiliser PUSHD. À tout le moins, cela devrait réduire les problèmes que vous pourriez rencontrer lors de l'utilisation de PUSHD avec un chemin réseau.
la source
La modification des registres Windows n'en vaut pas la peine et n'est pas sûre, utilisez
Map network drive
et chargez le partage réseau comme s'il était chargé depuis l'un de vos lecteurs locaux.la source