为什么在Windows 7 Professional中使用reg delete HKCU\Environment /F /V TestVar
删除环境变量会将其从注册表中删除,但该变量仍存在?删除环境变量不起作用
下面是详细信息:我创建了以下3个.cmd
文件:
检查variable.cmd
echo TestVar = %TestVar%
pause
集variable.cmd
setx TestVar 123
pause
删除变量.cmd
reg delete HKCU\Environment /F /V TestVar
pause
然后我请按照下列步骤操作(双击以确保我每次开始一个新的会话):
- 上
Check variable.cmd
双击我看到TestVar
不存在 - 双点击
Set variable.cmd
,它说SUCCESS: Specified value was saved.
- 双击
Check variable.cmd
它显示变量值。好!在Delete variable.cmd
- 双击和它说
Check variable.cmd
The operation completed successfully.
- 双击它仍然显示变量值。坏!
- 单击开始菜单,键入
environment
,点击Edit environment variables for your account
打开Environment Variables
对话框中,单击OK
不做改变 - 上
Check variable.cmd
双击和变量不存在了
我能找到在步骤2后注册表中的值在步骤4后找不到它,但步骤5仍然可以找到它。即使我没有改变任何东西,第6步真的会删除变量。
您必须广播一条消息来通知应用程序(在本例中为Windows资源管理器)的更改。请参阅http://stackoverflow.com/a/5246097/886887 –
@HarryJohnston:如何从批处理文件中广播消息? – stenci