Подтвердить что ты не робот

Как я могу написать псевдоним PowerShell с аргументами в середине?

Я пытаюсь настроить псевдоним Windows PowerShell для запуска исполняемого файла MinGW g++ с определенными параметрами. Однако эти параметры должны появиться после имени файла и других аргументов. Я не хочу испытывать трудности при попытке настроить функцию и все такое. Есть ли способ просто сказать что-то вроде:

alias mybuild="g++ {args} -lib1 -lib2 ..."

или что-то в этом роде? Мне не все знакомы с PowerShell, и мне сложно найти решение. Кто-нибудь?

4b9b3361

Ответ 1

Вы хотите использовать функцию, а не псевдоним, как упоминал Роман. Что-то вроде этого:

function mybuild { g++ $args -lib1 -lib2 ... }

Чтобы попробовать это, вот простой пример:

PS> function docmd { cmd /c $args there }
PS> docmd echo hello
hello there
PS> 

Вы также можете поместить это в свой профиль, чтобы он был доступен при запуске PowerShell. Имя вашего файла профиля содержится в $profile.

Ответ 3

Чтобы создать функцию, сохраните ее как псевдоним и сохраните все это в своем профиле позже, используйте:

$g=[guid]::NewGuid();
echo "function G$g { COMMANDS }; New-Alias -Force ALIAS G$g">>$profile

где вы заменили ALIAS на псевдоним, который вы хотите, и COMMANDS с командой или строкой команд для выполнения.

Конечно, вместо этого вы можете (и должны!) сделать псевдоним для выше:

echo 'function myAlias {
    $g=[guid]::NewGuid();
    $alias = $args[0]; $commands = $args[1]
    echo "function G$g { $commands }; New-Alias -Force $alias G$g">>$profile
}; New-Alias alias myAlias'>>$profile

На всякий случай, когда ваш мозг получил наизнанку из всей рекурсии (сглаживание псевдонимов и т.д.), после вставки второго блока кода в PowerShell (и перезапуска PowerShell) простой пример его использования:

alias myEcho 'echo $args[0]'

или без аргументов:

alias myLs 'ls D:\MyFolder'

Iff у вас еще нет профиля

Вышеуказанный метод не удастся, если у вас еще нет профиля! В этом случае используйте New-Item -type file -path $profile -force из этого ответа.