windows cmd /c 进入交互模式

windows cmd /c 进入交互模式

我的一个朋友有一台 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 可以亲自尝试。

有人知道为什么它以交互模式进入命令处理器吗?

相关内容