似乎因为我在批处理脚本中使用SET来声明我的变量,所以如果我在cmd中多次运行它,变量值将持续存在,除非我明确地重置它们。在不关闭CMD的情况下,我是否必须使用setlocal和endlocal来确保一次运行中的变量不会持续到另一次运行? 最佳答案 是的,你应该使用SETLOCAL。这将本地化任何更改,以便在发出ENDLOCAL后恢复旧环境。当所有脚本处理完成并且您返回到命令行上下文时,将为每个事件的SETLOCAL发出一个隐式的ENDLOCAL。无需显式发出ENDLOCAL。此外,如果您的脚本(或例程)被调用,那么当CALL完成时