如何使用gnuwin32 Makefile执行powershell / cmd命令?

时间:2018-08-05 18:35:10

标签: windows powershell makefile gnu-make

我尝试使用curl,rm之类的命令,并使用以下makefile处理器在Windows的makefile中启动:http://gnuwin32.sourceforge.net/packages/make.htm

这似乎是不可能的,但是我似乎对命令的使用非常有限。有哪些方法可以扩展我的命令集?

我将不胜感激。谢谢

2 个答案:

答案 0 :(得分:3)

如果仅Windows的解决方案满意,则可以直接从您的计算机上调用powershell.exe Makefile,如your answer

但是,我强烈建议避免使用类似Unix的PowerShell 别名 ,例如curl的{​​{1}}和{{ 1}},因为虽然它们的目的在摘要上相似,但是它们的语法通常大不相同。只需使用PowerShell的本地命令名称来避免歧义

请注意,您链接到的Invoke-WebRequest的Windows端口似乎会忽略使用rm


如果要跨平台兼容性

  • 之一:使用WSL ,它为您提供了Linux发行版的选择,其中Remove-Item 是标准的Unix实用程序是本地可用的-您既不需要Shell := <default shell executable>也不需要PowerShell。

  • 和/或:使用PowerShell Core 并按如下所示调用命令:

    make
    • 在Windows上使用WSL的跨平台解决方案中,您可以通过在make的顶部声明cmd.exe来简化调用,然后直接调用PowerShell(Core)命令。 / li>

答案 1 :(得分:1)

您可以通过在powershell前面加上相应的命令来使用powershell的功能。

示例:

.PHONY: psStuff

psStuff:
    powershell <your command>
    powershell curl google.de
    powershell rm -r folder
    powershell start yourwebsite.de