Parcourir un chemin UNC à l'aide de Windows CMD sans le mapper sur un lecteur réseau

154
C:\> cd \\somewhere
'\\somewhere'
CMD does not support UNC paths as current directories.

Ce que je fais habituellement pour contourner ce problème consiste à mapper ce répertoire sur un lecteur réseau, puis je pourrais facilement y accéder à partir de l'invite de commande.

Mais existe-t-il un moyen plus facile de contourner cela?

Andreas Grech
la source
12
quelles fenêtres utilisez-vous? Si c'est Windows 7, PowerShell est préinstallé sur votre système. Powershell supporte les chemins non-connectés et les commandes cmd (à quelques exceptions près).
Wullxz
Vous pouvez toujours parcourir le chemin unc via run.
Supercereal
1
@wullxz: bravo, je ne savais pas que vous pouviez parcourir les chemins UNC avec PowerShell. @kyle: C'est en fait une réponse valable selon ma question :) Mais je veux y accéder à partir d'un environnement en ligne de commande. Cela modifiera ma question pour que cela soit plus clair.
Andreas Grech
Si votre problème est que vous devez travailler uniquement à partir de la ligne de commande, vous pouvez mapper le lecteur réseau avec la commande 'net': net use x: \\ nom ordinateur \ nom nom
Al Crowley
1
@Aleister Crowley: Oui, je le sais, mais je demande s'il existe un moyen plus simple de ne pas mapper un lecteur réseau.
Andreas Grech

Réponses:

210

Si vous utilisez pushdet popdau lieu de cdvous n'obtiendrez pas cette erreur UNC.

pushd <UNC path>créera un lecteur virtuel temporaire et y entrera.
popdsupprimera le lecteur temporaire et vous ramènera sur le chemin que vous aviez lorsque vous êtes entré pushd.

Exemple:

C:\a\local\path> pushd \\network_host\a\network\path

U:\a\network\path> REM a temporary U: virtual drive has been created

U:\a\network\path> popd

C:\a\local\path> REM the U: drive has been deleted

C:\a\local\path>
evanemcdonnal
la source
13
L'utilisation pushdcrée un mappage de lecteur sur le partage réseau, puis se transforme en un chemin relatif au partage qu'il crée. popddéconnecte le partage.
Dov
2
Cela ne fonctionnait pas pour moi sous Windows 10.C:\WINDOWS\system32>pushd \\some\network\path ' ' CMD does not support UNC paths as current directories.
kayleeFrye_onDeck
1
Cela a juste fonctionné pour moi dans Windows 10, c'est étrange. J'ai fait pushd \\ServerName\home\dir\dir2.
Diziet
3
Native et élégant, juste une merveille. Fonctionne pour Windows 10.
WesternGun Le
Y a-t-il une astuce pour le faire fonctionner lorsque les informations d'identification de partage ne correspondent pas aux informations d'identification d'utilisateur de la machine?
Perkins
15

J'utilise Git Bash pour cela, car je l'ai déjà installé.

entrez la description de l'image ici

En prime:
Il a aussi de meilleures couleurs, laissez - moi Utilisons ls, rmetc., et utilise la barre oblique correcte pour les chemins. : P

Dan
la source
Vous pouvez également utiliser des barres obliques inverses si vous les échappez avec des barres obliques inverses:cd \\\\server\\share\\subdirectory
user121391
1
En outre, si vous essayez d'utiliser la complétion par tabulation avec les noms d'ordinateur, le shell peut rester bloqué pendant un certain temps jusqu'à ce que les noms soient résolus.
user121391
ça ne marche pas pour moi
KansaiRobot
12

L'extension "ContextConsole Shell Extension" de Kliu (alias Invite de commande ouverte) l'indique: "peut même ouvrir des répertoires à partir de chemins réseau (chemins UNC)" (à partir d'une fenêtre de l'Explorateur).

http://code.kliu.org/cmdopen/

entrez la description de l'image ici

therube
la source
3
Ce programme est le plus génial!
Afrazier
1
Je suis choqué par la capture d'écran, elle existe!
LiuYan 刘
n'oubliez pas d'ouvrir le lecteur // et non une version mappée. Il échouera sur mappé.
twobob
8

J'ai également frappé le problème UNC C:\> cd \\somewheredans un programme C. Trouvé cette page et appris sur la netcommande: net use x: \\computer name\share nameet utilisé avec succès! Merci à tous ceux qui publient leurs expériences pour que les autres apprennent. :-)

Peter Evans
la source
1
Oui, mais utiliser net usemappera cet emplacement sur un lecteur réseau et ce n’est pas ce que je voulais.
Andreas Grech
2
@AndreasGrech, le fait pushdaussi.
Pacerier
Cela fonctionne bien en Far+ ConEmu, contrairement à pushd.
Dzmitry Lahoda
@Pacerier Mais pushdsélectionne automatiquement une lettre de lecteur et déconnecte le lecteur réseau lorsqu'il n'est plus nécessaire (après popdou exit).
Martin
4

Si vous utilisez XP, vous pouvez consulter ce site http://support.microsoft.com/kb/156276

Vous devez ajouter une valeur de registre, vous déconnecter, vous reconnecter ... et maintenant, votre cmd.exe prend en charge les chemins UNC. Il me semble que vous ne pouvez toujours pas vous connecter au chemin, mais vous pouvez l’utiliser dans d’autres commandes telles que dir, copy ...

Une alternative pourrait utiliser la commande pushd, qui vous permettra de basculer vers le partage (je suppose en lui affectant une lettre de lecteur temporaire) http://support.microsoft.com/kb/317379

BigBlackDog
la source
Les pages que vous avez liées semblaient être des pages vides ......
Pacerier
Les liens fonctionnent ici. Avez-vous essayé d'utiliser https?
BigBlackDog
-3

Vous pouvez utiliser l'application HttpFileServer, c'est sur des fenêtres, très léger et très facile à configurer, il vous permet de partager un dossier réseau UNC (\ serveur \ partage) avec le protocole HTTP et le lien HTTP peut être utilisé dans n'importe quelle page HTML

http://www.rejetto.com/hfs/

c'est incroyable

Salman
la source
8
Pas très utile pour un utilisateur en ligne de commande.
Isaac Rabinovitch
Je conviens qu'il s'agit d'un logiciel extraordinaire, mais comment peut-il être utilisé pour contourner le fait que l'application Fenêtre CMD ne gère pas UNC?
Jay Elston