使用PowerShell和UNC路径清除NMAKE

4

当我尝试使用NMAKE、PowerShell和UNC路径清理当前的构建时,我遇到了一些问题。在nmakefile中,我的清理目标如下:

clean: del obj\* /Q

当输入“nmake clean" 时,应该会删除“obj”目录中的所有文件。但是它没有起作用。我收到了以下错误信息:
CMD.exe was started with the specified path
UNC paths are not supported
Using the Windows directory instead
System cannot find the specified file
NMAKE : fatal error U1077: 'del' : return code '0x1'

真的吗?它会回退到Windows目录下吗?谢天谢地我没有...

del *

在干净的目标中。经历了最初的震惊(以及松了一口气,因为我没有使用上面的命令),我尝试寻找另一种从nmakefile中清理我的“obj”目录的方法。我尝试使用PowerShell命令而不是“del”,例如:

clean: Remove-Item obj/* -Recurse -Force

然而,这仍然不起作用。NMAKE 仍然尝试启动 CMD.exe,然后从那里运行 "Remove-Item",当然这是不起作用的。它仍然会发生“在 UNC 路径情况下回退到 Windows 目录”的恐怖现象!
有人能告诉我应该如何实现一个适用于 PowerShell 和 UNC 路径的 nmake clean 目标吗?
另外,是否有一种方法可以关闭这种回退到 Windows 目录的恐怖现象?
谢谢!
1个回答

2

看起来nmake没有原生支持PowerShell,所以您需要使用参数运行PowerShell.exe,像这样:

clean: powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command "Remove-Item obj/* -Recurse -Force"

如果有任何问题,请先尝试使用无害的东西进行测试:

clean: powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command "Get-ChildItem /* -Recurse -Force"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接