58 votes

Configurer Windows PowerShell pour afficher uniquement le nom du dossier actuel dans l'invite Shell.

J'utilise PowerShell sous Windows 7. Comment puis-je configurer PowerShell pour qu'il affiche uniquement le nom du dossier actuel (au lieu du chemin complet) dans l'invite Shell ?

Par exemple, au lieu de C:\folder\directory\name> Je veux name> .

93voto

Ben Collins Points 11318

Vous devez personnaliser la fonction d'invite dans votre profil PowerShell ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ) ; il peut être vide ou même ne pas exister si vous ne l'avez jamais modifié auparavant.

  1. Ouvrez votre profil (par exemple, ouvrez le fichier susmentionné ou pendant que vous êtes dans PowerShell, Notepad $profile )

  2. Ajoutez les éléments suivants à votre profil :

    function prompt {
      $p = Split-Path -leaf -path (Get-Location)
      "$p> "
    }
  3. Sauvegarder le profil

  4. Redémarrer PowerShell

    En option . Si vous obtenez un message disant que vous n'êtes pas autorisé à exécuter des scripts, alors vous devez copier/coller cette ligne dans PowerShell :

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

    et redémarrer.

Les politiques d'exécution de Windows PowerShell vous permettent de déterminer les conditions dans lesquelles Windows PowerShell charge les fichiers de configuration et exécute les scripts.

Vous pouvez définir une politique d'exécution pour l'ordinateur local, pour l'utilisateur actuel ou pour une session particulière. Vous pouvez également utiliser un paramètre de stratégie de groupe pour définir une stratégie d'exécution pour les ordinateurs et les utilisateurs.

Source : Documentation Microsoft

13voto

Jelgab Points 581

Modifiez l'invite pour afficher le dossier actuel sans le chemin d'accès complet et le symbole plus grand que à la fin :

On pourrait le faire :

Function Prompt { "$( ( get-item $pwd ).Name )>" }

Ou :

Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }

Ou :

Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }

10voto

captinbo Points 211

En outre, je n'ai pas pu faire La commande de Synetech jusqu'à ce que je crée le $profile.

  1. Ouvrir PowerShell

  2. Tipo $profile et appuyez sur la touche Entrée. Cela affichera le chemin du profil sur lequel PowerShell s'appuie, même s'il n'existe pas (ce n'était pas le cas pour moi). Mon chemin était différent de ce que Synetech a publié .

     >$profile
     C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  3. J'ai dû créer à la fois le WindowsPowerShell et le dossier Microsoft.PowerShell_profile.ps1 fichier.

  4. Ajouter Le code de Synetech et redémarrez PowerShell.

Note :

Si vous utilisez posh-git (qui est installé lorsque vous utilisez le bureau GitHub), Le script de Synetech remplacera l'invite de posh-git. Invite supplémentaire scripts pour posh-git aquí .

3voto

Mark Points 131

J'ai trouvé que c'était assez facile - en combinant Réponse de Synetech et les informations trouvées à l'adresse suivante Profils PowerShell . Parce que je suis un novice en matière de PowerShell. Mes étapes (pour Visual Studio Code) :

  1. test-path $profile (dans l'invite de commande PowerShell - y a-t-il un profil configuré ?)

  2. new-item -path $profile -itemtype file -force (en supposant que la réponse à la question précédente est fausse)

  3. notepad $profile (ouvre le bloc-notes)

  4. Coller dans

     function prompt {
       $p = Split-Path -leaf -path (Get-Location)
       "$p> "
     }
  5. Enregistrer (vous ne devriez pas avoir à choisir un emplacement ; c'est déjà fait pour vous)

  6. Recharger Visual Studio Code - vous obtiendrez probablement un message concernant l'exécution de scripts (ou faites simplement l'étape suivante avant le rechargement).

  7. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (à l'invite PowerShell, à partir de la réponse Super Utilisateur)

  8. Recharger le code Visual Studio

Il s'agit donc principalement de la réponse de Synetech avec un peu d'aide pour démarrer facilement - en particulier l'étape 2 qui facilite grandement les choses.

1voto

Cannon Earnest Points 19

La ligne unique ci-dessous fonctionne bien pour moi :

(Get-Location | Get-Item).Name

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X