PowerShell 1.0 peut-il créer des liens durs et souples analogues à la variété Unix?
Si ce n'est pas intégré, quelqu'un peut-il me diriger vers un site qui a un script ps1 qui imite cela?
C'est une fonction nécessaire de tout bon shell, à mon humble avis. :)
powershell
symlink
Mike T
la source
la source
New-Item -Type
et appuyez sur tab pour parcourir les options.Hardlink
,SymbolicLink
etJunction
apparaissent pour moi. Works Win 10, Server 2016+ ou un système d'exploitation plus ancien avec Powershell 5.0+ installé via Windows Management Framework 5.0+.New-Item -Type HardLink
niNew-Item -Type SymbolicLink
. Les documents New-Item contiennent un lien vershelp about_Providers
, il vous suggère de lire l'aide pour chaque fournisseur (qui n'est pas lié). Mais si vous le recherchez sur Google, il y a beaucoup de buzz dans la communauté PowerShellNew-Item -Type HardLink
. Il semble que l'équipe d'ingénierie PowerShell ait trouvé des points d'extension de fournisseur qui déconcertent l'équipe de documentation.Réponses:
Vous pouvez appeler le
mklink
fourni parcmd
, à partir de PowerShell pour créer des liens symboliques:Vous devez passer
/d
àmklink
si la cible est un répertoire.Pour les liens durs, je suggère quelque chose comme Sysinternals Junction .
la source
function mklink { cmd /c mklink $args }
New-Item
détecte si la cible est un répertoire , maisNew-Item
échouera si la cible n'existe pas, tandis que mklink créera le lien symbolique malgré tout .Windows 10 (et Powershell 5.0 en général) vous permet de créer des liens symboliques via l'applet de commande New-Item .
Usage:
Ou dans votre profil:
Activez le mode développeur pour ne pas exiger de privilèges d'administrateur lors de l'établissement de liens avec
New-Item
:la source
.lnk
raccourci Explorer . Dans l'explorateur, un raccourci et un lien symbolique du même nom s'affichent côte à côte comme si de rien n'était. Leurs comportements sont subtilement différents; le lien symbolique suivant montre le chemin absolu dans la barre de l'explorateur. Le fait de suivre le raccourci le traite comme si le répertoire parent du lien symbolique était le vrai parent.New-Item
commande.Ajouter un module "pscx"
Non, il n'est pas intégré à PowerShell. Et l'
mklink
utilitaire ne peut pas être appelé seul sous Windows Vista / Windows 7 car il est intégré directement encmd.exe
tant que "commande interne" .Vous pouvez utiliser les extensions de communauté PowerShell (gratuites). Il existe plusieurs applets de commande pour les points d'analyse de différents types:
New-HardLink
,New-SymLink
,New-Junction
,Remove-ReparsePoint
la source
New-Item -Type
et appuyez sur tab pour parcourir les options.Hardlink
,SymbolicLink
etJunction
apparaissent pour moi. Works Win 10, Server 2016+ ou un système d'exploitation plus ancien avec Powershell 5.0 installé via Windows Management Framework 5.0+.Sous Windows 7, la commande est
PowerShell le trouve sans le chemin d'accès complet (c: \ Windows \ system32) ou l'extension (.exe).
la source
fsutil hardlink
nécessitenew-file
etexisting-file
être sur le même lecteur. Si cela vous importe, utilisezmklink /c
plutôt les cmd .fsutil
(ou à Windows d'ailleurs)New-Symlink:
Remove-Symlink:
Usage:
la source
New-Item -Type
et appuyez sur tab pour parcourir les options.Hardlink
,SymbolicLink
etJunction
apparaissent pour moi. Works Win 10, Server 2016+ ou un système d'exploitation plus ancien avec Powershell 5.0 installé via Windows Management Framework 5.0+.Essayez junction.exe
L' utilitaire de ligne de commande Junction de SysInternals facilite la création et la suppression de jonctions.
Lectures complémentaires
Microsoft utilise "soft link" comme autre nom pour "junction" .
Cependant: un "lien symbolique" est tout autre chose.
Voir MSDN: liens durs et jonctions dans Windows.
(Ceci est en contradiction directe avec l'utilisation générale de ces termes où "lien souple" et "lien symbolique" ( "lien symbolique" ) signifient la même chose .)
la source
mklink
ce qui est livré avec Windows. Si vous avez une version Windows avec laquelle elle est livrée.Vous pouvez utiliser cet utilitaire:
la source
J'ai écrit un module PowerShell qui a des wrappers natifs pour MKLINK. https://gist.github.com/2891103
Comprend des fonctions pour:
Capture la sortie MKLINK et génère les erreurs PowerShell appropriées lorsque cela est nécessaire.
la source
J'ai combiné deux réponses (@bviktor et @jocassid). Il a été testé sur Windows 10 et Windows Server 2012.
la source
En fait, la commande Sysinternals
junction
ne fonctionne qu'avec les répertoires (ne me demandez pas pourquoi), donc elle ne peut pas lier des fichiers en dur. J'irais aveccmd /c mklink
pour les liens logiciels (je ne peux pas comprendre pourquoi il n'est pas pris en charge directement par PowerShell), oufsutil
pour les liens physiques.Si vous en avez besoin pour travailler sur Windows XP, je ne connais rien d'autre que Sysinternals
junction
, donc vous pourriez être limité aux répertoires.la source
J'ai trouvé cela de manière simple sans aide extérieure. Oui, il utilise une commande DOS archaïque mais cela fonctionne, c'est facile et c'est clair.
Celui-ci utilise la commande DOS dir pour trouver toutes les entrées avec l'attribut de lien symbolique, filtre le nom du lien spécifique suivi des crochets "[]" cibles, et pour chacune - vraisemblablement une - extrait uniquement la chaîne cible.
la source