bash alias équivalents pour powershell?

12

Par défaut, mon Windows PowerShell démarre C:\Users\Santosh, mon installation XAMPP se trouve D:\donc le dossier htdocs se trouve à D:\xampp\htdocs. Si je dois modifier quelque chose dans le dossier htdocs, je dois taper complet cd D:\xampp\htdocs\ (la saisie semi-automatique n'est pas si gentille), puis modifier ce fichier.

Si ce PowerShell était un Bash, je le ferais dans le fichier .bash_aliases:

alias htdocs='cd D:\xampp\htdocs'

Est-il possible de conserver des alias Bash comme fichier et alias n'importe quelle commande dans PowerShell?

Santosh Kumar
la source

Réponses:

12

Vous voulez que la commande set-alias soit combinée avec un script PowerShell ou une fonction. Alors ouvrez un éditeur et écrivez:

set-location d:\xampp\htdocs

et enregistrez ce fichier par exemple dans c: \ Users \ kumar \ htdocs32.ps1 ou vous pouvez créer une fonction comme celle-ci.

function htdocs32 { set-location d:\xampp\htdocs }

pour exécuter des scripts, vous devez définir la politique d'exécution autorisant les scripts localement. ouvrez la ligne de commande powershell en tant qu'administrateur et tapez:

set-executionpolicy remotesigned

vous pouvez maintenant définir un alias pour le script powershell:

set-alias htdocs c:\Users\kumar\htdocs32.ps1

et en tapant htdocs maintenant, vous allez cd dans votre dossier htdocs

Powershell utilise une combinaison verbe-nom pour nommer les soi-disant applets de commande. Le verbe fait référence à ce que vous voulez faire et le nom à ce que vous voulez faire quelque chose.

Pour obtenir de l'aide sur la commande set-alias que vous souhaitez utiliser:

get-help set-alias -full  |more 

et non il n'y en a pas moins. l'autre méthode consisterait à lire ce http://technet.microsoft.com/en-us/library/ee176958.aspx

Aussi pour commencer avec Power Shell, je vous recommande de jeter un œil à cette URL: http://www.powershellpro.com/powershell-tutorial-introduction/

Pour enregistrer l'alias de façon permanente, vous devez l'enregistrer dans votre profil utilisateur. tester d'abord si un profil est déjà en place en utilisant:

PS C:\> $profile

si vous vous trompez, vous pouvez créer un nouveau profil en tapant:

 New-Item -path $profile -type file -force

vous pouvez maintenant éditer le fichier

c:\Users\kumar\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

et mettez la fonction definiton et un alias. comme décrit ci-dessus.

cependant, définir un alias pour cela sous linux n'est pas nécessaire. sicne il existe une variable d'environnement $ CDPATH pour bash qui peut être définie dans ~ / .bahsrc.

l1zard
la source
Existe-t-il un fichier dans lequel ces alias sont stockés? Ce serait d'une grande utilité si je le sauvegarde.
Santosh Kumar
Obtenir Cannot resolve alias 'htdocs' because it refers to term 'cd D:\xampp\htdocs', which is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.le faireset-alias htdocs "cd D:\xampp\htdocs"
Santosh Kumar
ok vous feriez mieux d'écrire un ckdlet. ouvrez un éditeur de texte et écrivez: set-locaation c: \ xampp \ htdocs et enregistrez ce fichier sous htdocs32.ps1. en supposant que htdocs32.ps1 a été enregistré dans c: \ Users \ kumar \ htdocs32.ps1, vous pouvez utiliser set-alias htdocs c: \ Users \ kumars \ htdocs32.ps1. assurez-vous que vous avez défini votre politique d'exécution de manière précise.
l1zard
@SantoshKumar Votre solution nécessite le drapeau '/ d' pour changer le répertoire DRIVE puis || "cd / d D: \ xampp \ htdocs"
Eddie B
2

En fait, vous pouvez essayer cela, cela créera un module chargé automatiquement.

Sous C: \ Users \ kumar \ Documents \ WindowsPowerShell \

Créez un nouveau dossier Modules, s'il n'existe pas.

PS C:\>mkdir Modules

Sous Modules, créez un appel de dossier ex: "Quicky"

PS C:\>mkdir Quicky

Créez un fichier appelé "quicky.psm1", .psm1 est l'extension pour les modules.

Modifiez le fichier et ajoutez cette ligne.

function htdocs32 { set-location d:\xampp\htdocs }

Enregistrez le module.

Appelez ensuite simplement la fonction "htdocs32"

PS C:\>htdocs32
DavidRG
la source
0

si vous avez une politique d'exécution de script powershell pas trop restreinte, vous pouvez simplement un script pour le faire. N'oubliez pas que contrairement à BASH, un script Windows peut affecter votre shell une fois terminé, vous n'avez donc pas besoin d'alias ou d'équivalent de fonction bash.

htdocs.ps1 (mettez ceci quelque part sur votre CHEMIN , j'irais avec cdhtdocs.ps1 moi-même, mais c'est votre convention de dénomination)

chdir "d:\xampp\htdocs"

Note: ce sera un travail de modification des lecteurs selon les besoins aussi. c'est-à-dire que cela fonctionnerait si vous étiez dans c: \ temp \ pour commencer.

JL Peyret
la source