在Windows PowerShell中设置GCC的别名

在Windows PowerShell中设置GCC的别名,c,powershell,gcc,alias,c99,C,Powershell,Gcc,Alias,C99,我正在尝试在Windows PowerShell中设置一个“gcc99”别名,它等于“gcc-std=C99-pedantic-Wall”。其想法是使用更少的按键来确保GCC在c99模式下运行。(我已尽最大努力将以下帖子中的指导原则改编为Windows PowerShell:) 当我在设置了这样一个别名(下面的图表1)之后尝试编译时,我收到了一个错误。作为参考,如果我使用扩展命令进行编译,我不会收到这个错误(下面的图表2)。作为测试,我尝试将gc99设置为“gcc”的别名(没有附加值),效果很好

我正在尝试在Windows PowerShell中设置一个“gcc99”别名,它等于“gcc-std=C99-pedantic-Wall”。其想法是使用更少的按键来确保GCC在c99模式下运行。(我已尽最大努力将以下帖子中的指导原则改编为Windows PowerShell:)

当我在设置了这样一个别名(下面的图表1)之后尝试编译时,我收到了一个错误。作为参考,如果我使用扩展命令进行编译,我不会收到这个错误(下面的图表2)。作为测试,我尝试将gc99设置为“gcc”的别名(没有附加值),效果很好(下面的图表3)。请忽略我尚未在代码中解决的许多警告:)

有什么建议吗

(我不确定为什么我的标题没有显示在下面的图片上。我正在使用自动创建的图片格式,例如,第一张图片:下一行的“后跟”:link。)


PowerShell中的别名与Unix shell中的别名不同。只能为cmdlet、函数或程序的名称添加别名,不能包含参数。引述自:

名称
设置别名
提要
创建或更改cmdlet或其他命令的别名(备用名称)
当前Windows PowerShell会话中的元素。
语法
设置别名[-Name][-Value][-Description][-Force]
[-选项][通过][范围][确认]
[-WhatIf][]
描述
Set-Alias cmdlet可创建或更改服务器的别名(备用名称)
cmdlet或用于命令元素,例如函数、脚本、文件,
或其他可执行文件。还可以使用“设置别名”重新指定当前别名
添加到新命令,或更改别名的任何属性,例如
它的描述。除非将别名添加到Windows PowerShell配置文件中,
退出会话或关闭Windows时,对别名的更改将丢失
PowerShell。
要运行带有默认参数集的外部程序,可以将该默认参数集定义为数组,并按如下方式运行程序:

$CARGS = '-std=C99', '-pedantic', '-Wall'
gcc $CARGS -more arguments here ...

正如@chris在下面的评论中所建议的,如果您希望在所有PowerShell实例中预定义变量
$CARGS
,您可以将其添加到(例如,为您的用户创建
%UserProfile%\Documents\Windows-PowerShell\profile.ps1
)。

您不能创建运行带有参数的命令的别名,您需要创建一个函数。请参阅可能的副本谢谢!您知道每次我打开新的Powershell窗口时是否需要重新加载阵列(/functions/imported modules)吗?确实知道,但您可以将它们添加到Powershell配置文件中,该配置文件可以是系统、用户或特定于shell的。