tutorial sitio publicar proyectos instalar espaƱol ejemplos comandos django powershell

django - sitio - Equivalente a Bash alias en PowerShell



install django (2)

Una pregunta novata de PowerShell:

Me gustaría hacer un alias en PowerShell exactamente equivalente a este alias de Bash:

alias django-admin-jy="jython /path/to/jython-dev/dist/bin/django-admin.py"

Al retocarlo hasta ahora, he encontrado que esto es muy difícil.

- Los alias de PowerShell solo funcionan con comandos de PowerShell + llamadas a funciones

-No hay forma clara de permitir una cantidad ilimitada de argumentos en una llamada de función de PowerShell

-PowerShell parece bloquear stdout

Vale la pena señalar que he intentado con la solución presentada aquí: http://huddledmasses.org/powershell-power-user-tips-bash-style-alias-command/

Y ha recibido el siguiente error relacionado con la sintaxis al cargar PowerShell:

The term ''which'' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spell ing of the name, or if a path was included, verify that the path is correct and try again. At C:/Users/Dan/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1:9 char:27 + $cmd = @(which <<<< $_.Content)[0] + CategoryInfo : ObjectNotFound: (which:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException


Los alias de PowerShell se pueden usar para cualquier "comando", incluidos EXE:

new-alias n notepad.exe

Actualización : como se menciona en los comentarios, los alias de PowerShell no permiten argumentos. Son simples "alias" para un nombre de comando y nada más. Para obtener lo que busca (creo que ya que no estoy familiarizado con los alias de Bash) intente esto:

function django-admin-jy { jython.exe /path/to/jython-dev/dist/bin/django-admin.py @args }

Utiliza una función de PowerShell 2.0 llamada splatting de argumentos. Puede aplicar @ a un nombre de variable que haga referencia a una matriz o una tabla hash. En este caso, lo aplicamos a la variable llamada args que contiene todos los parámetros sin nombre.

Si desea una forma realmente genérica para crear funciones de alias que tomen parámetros, intente esto:

function New-BashStyleAlias([string]$name, [string]$command) { $sb = [scriptblock]::Create($command) New-Item "Function:/global:$name" -Value $sb | Out-Null } New-BashStyleAlias django-admin-jy ''jython.exe /path/to/jython-dev/dist/bin/django-admin.py @args''

En cuanto al problema con el enfoque de Joel, sospecho que tiene un alias para Get-Command . Intente reemplazarlo con Get-Command .


Las funciones pueden tener arbitrariamente muchos argumentos. Solo necesita usar $args para acceder a ellos.

En cuanto al problema estándar: ¿Qué estás experimentando exactamente?