bash alias equivalentes para powershell?

11

De manera predeterminada, mi Windows PowerShell comienza C:\Users\Santosh, mi instalación de XAMPP está en D:\modo que la carpeta htdocs se encuentra en D:\xampp\htdocs. Si tengo que editar algo en la carpeta htdocs, entonces tengo que escribir completo cd D:\xampp\htdocs\ (autocompletar no es tan amable) y luego editar ese archivo.

Si este PowerShell fuera un Bash, lo haría en el archivo .bash_aliases:

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

¿Es posible mantener alias Bash como archivo y alias algún comando en PowerShell?

Santosh Kumar
fuente

Respuestas:

12

Desea el comando set-alias en combinación con un script de powershell o una función. Entonces abra un editor y escriba:

set-location d:\xampp\htdocs

y guarde este archivo, por ejemplo, en c: \ Users \ kumar \ htdocs32.ps1 o puede crear una función como esta.

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

para ejecutar scripts, debe establecer la política de ejecución que permita los scripts localmente. abra la línea de comandos de powershell como administrador y escriba:

set-executionpolicy remotesigned

ahora puede establecer un alias para el script de powershell:

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

y escribir htdocs ahora lo colocará en su carpeta htdocs

Powershell está usando una combinación verbo-nombre para nombrar los llamados cmdlets. El verbo se refiere a lo que quieres hacer y al sustantivo con lo que quieres hacer.

Para obtener ayuda para el comando set-alias que desea usar:

get-help set-alias -full  |more 

y no no hay menos. el otro método sería leer este http://technet.microsoft.com/en-us/library/ee176958.aspx

Además, para comenzar con Power Shell, le recomiendo que eche un vistazo a esta URL: http://www.powershellpro.com/powershell-tutorial-introduction/

Para guardar el alias de forma permanente, debe guardarlo en su perfil de usuario. Primero pruebe si un perfil ya está en su lugar utilizando:

PS C:\> $profile

Si se vuelve falso , puede crear un nuevo perfil escribiendo:

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

ahora puedes editar el archivo

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

y poner en la función definición y un alias. como se describió anteriormente.

Sin embargo, establecer un alias para esto en Linux no es necesario. sicne hay un entorno $ CDPATH variable para bash que se puede configurar en ~ / .bahsrc.

l1zard
fuente
¿Hay algún archivo donde se almacenan estos alias? Sería de gran utilidad si lo respaldo.
Santosh Kumar
Seguir 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.haciendoset-alias htdocs "cd D:\xampp\htdocs"
Santosh Kumar
ok es mejor que escribas un ckdlet. abra un editor de texto y escriba: set-locaation c: \ xampp \ htdocs y guarde este archivo como htdocs32.ps1. suponiendo que htdocs32.ps1 se guardó en c: \ Users \ kumar \ htdocs32.ps1, puede usar set-alias htdocs c: \ Users \ kumars \ htdocs32.ps1. asegúrese de haber establecido su política de ejecución de manera adecuada.
l1zard
@SantoshKumar Su solución requiere el indicador '/ d' para cambiar DRIVE y luego el directorio || "cd / d D: \ xampp \ htdocs"
Eddie B
2

En realidad, podría intentar esto, creará un módulo cargado automáticamente.

En C: \ Users \ kumar \ Documents \ WindowsPowerShell \

Cree una nueva carpeta Módulos, si no existe.

PS C:\>mkdir Modules

En Módulos, cree una carpeta llamada ex: "Quicky"

PS C:\>mkdir Quicky

Cree un archivo llamado "quicky.psm1", .psm1 es la extensión para módulos.

Edite el archivo y agregue esa línea.

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

Guarda el módulo.

Luego simplemente llame a la función "htdocs32"

PS C:\>htdocs32
DavidRG
fuente
0

Si tiene una política de ejecución de script de PowerShell no demasiado restringida, puede simplemente un script para hacerlo. Recuerde, a diferencia de BASH, un script de Windows puede afectar su shell una vez completado, por lo que no necesita un alias o una función bash equivalente.

htdocs.ps1 (pon esto en algún lugar de tu RUTA, yo mismo iría con cdhtdocs.ps1 , pero es tu convención de nomenclatura)

chdir "d:\xampp\htdocs"

Nota: esto también funcionará para cambiar las unidades según sea necesario. es decir, funcionaría si estuviera en c: \ temp \ para comenzar.

JL Peyret
fuente