如果我在Windows上的批处理脚本中覆盖系统范围的变量,会发生什么



我是批处理脚本(用于Windows(的新手,因此我正在阅读有关它的教程。教程状态

警告:设置将始终覆盖(clobber( 变量。。验证您在编写脚本时不会覆盖系统范围的变量是一个好主意...例如,命名变量可能很诱人 "温度",但这将改变广泛使用的"%temp%"的含义 环境变量。

但是,本教程并未涉及这样做的后果。如果我编写一个简单地覆盖这些系统范围的变量之一的批处理文件会发生什么,它只能更改脚本范围中的变量?如果我将其直接输入命令行呢?

通常,我只会运行它,看看会发生什么,但是我不想意外地覆盖重要的事情。

set仅在cmd.exe的实例中覆盖变量(并且从此实例开始(,它不会影响其他控制台窗口(新或现有(,并且所有这些变量更改均为关闭控制台窗口时丢失。

您还可以使用setlocal进行 set更改范围范围范围:

@echo off
set global=Hello
setlocal
set private=world

可以使用setx资源套件实用程序进行持续更改。

最新更新