2017-07-22 4 views
1

Je suis encore un peu nouveau chez Powershell, mais j'aimerais ajouter mon éditeur préféré dans un Alias ​​in Powershell.Comment ajouter un argument de ligne de commande à powershell dans profile.ps1 pour Alias?

J'ai édité le profile.ps1 dans C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 qui fonctionnera automatiquement lorsque PowerShells démarre.

J'ai essayé d'entrer New-Alias np notepad.exe qui fonctionne parfaitement chaque fois que je lance PowerShell.


Cependant, je voudrais utiliser Sublime Text 3 comme éditeur. J'ai suivi les instructions contenues dans cette page SO: How can I write a PowerShell alias with arguments in the middle?

La ligne de commande que j'ai besoin pour Sublime Text est-"C:\Program Files\Sublime Text 3\sublime_text.exe" -n [FirstArg]

qui je sors quelque chose comme ceci: function sublime { 'C:\Program Files\Sublime Text 3\sublime_text.exe' -n $args }

Il ne fonctionne pas et je suis l'erreur comme ceci:

At C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1:5 char:72 
+ ... lime { 'C:\Program Files\Sublime Text 3\sublime_text.exe' -n $args } 
+                ~~ 
Unexpected token '-n' in expression or statement. 
At C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1:5 char:75 
+ ... lime { 'C:\Program Files\Sublime Text 3\sublime_text.exe' -n $args } 
+                 ~~~~~ 
Unexpected token '$args' in expression or statement. 
    + CategoryInfo   : ParserError: (:) [], ParseException 
    + FullyQualifiedErrorId : UnexpectedToken 

Toute aide serait appréciée. Merci!

+1

Vous manquez l'opérateur d'invocation '&'. – PetSerAl

+0

@PetSerAl Comme je suis encore tout nouveau à PS, pourriez-vous s'il vous plaît me donner un exemple s'il vous plaît? Merci beaucoup. –

+0

Avez-vous déjà lancé un programme avec un espace dans leur nom? Si oui, faites de même. Si non, alors trouvez comment faire cela. Il devrait y avoir beaucoup d'informations à ce sujet sur Internet. – PetSerAl

Répondre

0

Sans être un utilisateur sublime, je pense que cela devrait fonctionner:

function Start-Sublime { 
    param([string]$args) 

    $limeArgs = [string]::Empty 
    if ($args -ne $null) { 
     $limeArgs = $args 
    } 

    Start-Process "$env:ProgramFiles\Sublime Text 3\sublime_text.exe" -n $limeArgs 
} 

Set-Alias lime Start-Sublime 

pas le plus joli code PowerShell, mais j'imagine qu'il va faire ce que vous êtes après. C'est un peu plus facile à comprendre que l'opérateur cryptique &.