我有一个属性文件,其中包含以下内容...
...
USERNAME=myuser
...
在我的Makefile中,下面有使用类似Unix的命令来获取变量值的内容...
export USERNAME=$(shell grep USERNAME my_properties.txt | cut -d'=' -f 2-)
但是,在Windows Power Shell中(也许命令提示符是正确的短语?),上述操作不起作用,因为“ grep”不是标准命令(其中包括其他命令)。在Windows Power Shell环境中从属性文件提取属性的等效方法是什么?
假设这cmd.exe
是默认的shell:
export USERNAME=$(shell powershell -noprofile -c "(Select-String 'USERNAME=(.+)' my_properties.txt).Matches.Group[1]")
注意:-NoProfile
禁止加载PowerShell的配置文件,不幸的是默认情况下会发生。如果您需要-File
参数来执行脚本文件,则可能还需要-ExecutionPolicy Bypass
,除非您的有效执行策略允许执行脚本。
上面使用PowerShell CLI的-c
(-Command
)参数来传递使用Select-String
cmdlet(PowerShell的grep
类似物)的命令。
仔细模拟到命令将是以下内容,其另外的用途-split
,所述字符串分割操作者(仅示出原始PowerShell命令;地方它的内侧"..."
上面):
((Select-String USERNAME my_properties.txt) -split '=', 2)[-1]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句