使命令等待确认,然后再运行批处理文件中的下一行



我已经上下搜索了我认为是一个常见问题,但只能找到有关用户确认的答案,而不是系统确认。

我希望以下命令按顺序运行,在转到下一个命令之前等待响应:

npm config set https-proxy http://example.com:8080
npm config set proxy http://example.com:8080
npm config set sslVerify false
npm config set strict-ssl false
set HTTP_PROXY=http://example.com:8080
set HTTPS_PROXY=http://example.com:8080

我已经将命令按顺序添加到批处理文件中的新行上,但是在执行时,它不会在每个命令上暂停以等待响应。如何强制脚本等待每个命令,直到系统确认?

非限定名称(如npmdoSomething)可能会映射到用各种语言编写的脚本,包括批处理文件。使用call命令调用这些和 cmd.exe将始终等待启动任何子进程。

.exe的分散在多个目录中的情况并不少见,这会膨胀路径环境变量,因此许多安装会在添加到路径的单个目录中放置别名脚本,当您调用命令时,它会确定要运行的可执行文件并启动这些可执行文件。

使用包装器脚本来简化可执行调用、添加一些日志记录或将命令临时映射到其他版本(升级/测试)也很常见。

在 npm 的情况下,我相信它主要是用 JavaScript 编写的,因此必须启动适当的脚本引擎来运行 npm 命令。 这可能是从批处理脚本引导的,也可以由操作系统根据其具有的任何文件扩展名自动调用。从一个版本或安装到下一个版本或安装的详细信息可能会有所不同,通常对于从命令行调用它们的临时用户来说无关紧要,但脚本行为可能会明显不同。

除非您使用完全限定的路径/文件名从命令脚本启动某些内容,否则通常即使您这样做,也应该默认使用call命令来调用它。然后涵盖上述所有情况,您的脚本将始终按预期运行。

call npm config set https-proxy http://example.com:8080
call npm config set proxy http://example.com:8080
call npm config set sslVerify false
call npm config set strict-ssl false
set HTTP_PROXY=http://example.com:8080
set HTTPS_PROXY=http://example.com:8080

请注意,脚本或程序仍有可能将工作传递给另一个进程,然后立即返回,但无论是以交互方式启动还是从脚本启动,这种行为通常是相同的。

相关内容

最新更新