我的一个朋友有一台 Windows 10 系统,它出现以下行为:
当使用 GNU make 运行使用“cmd /c”的命令并且命令字符串包含通配符时,调用的 cmd.exe 不会终止(如 /c 选项所述)而是保持在交互模式。
示例 makefile:
clean:
@echo makefile: making clean
-cmd /c del /s *.pyc
@echo makefile: made clean
调用 make:
(prompt) > make clean
makefile: making clean
cmd /c del /s *.pyc
Microsoft Windows [Version 10.0.17134.523]
(c) 2018 Microsoft Corporation. All rights reserved.
(prompt) >
当输入时exit
,makefile继续:
makefile: made clean
显然,cmd /c ...
以交互模式调用命令处理器。
当删除星号时,不会发生这种情况:
示例 makefile:
clean:
@echo makefile: making clean
-cmd /c del /s x.pyc
@echo makefile: made clean
调用 make:
(prompt) > make clean
makefile: making clean
cmd /c del /s x.pyc
The system cannot find the file specified.
makefile: made clean
(prompt) >
当命令行中出现星号或使用双引号(如cmd /c "del /s x.pyc"
)时,就会发生这种情况。
我以前从未见过这样的行为,而且我也没有 Windows 10 可以亲自尝试。
有人知道为什么它以交互模式进入命令处理器吗?