[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
从大量的测试推断cmd.exe在每次运行时就会用以下命令向内存写入信息从而来设置环境变量:
  1. set "ALLUSERSPROFILE=C:\Documents and Settings\All Users"
  2. set "APPDATA=C:\Documents and Settings\Administrator\Application Data"
  3. set "CommonProgramFiles=C:\Program Files\Common Files"
  4. set "COMPUTERNAME=PC-200901071258"
  5. set "ComSpec=C:\WINDOWS\system32\cmd.exe"
  6. set "FP_NO_HOST_CHECK=NO"
  7. set "HOMEDRIVE=C:"
  8. set "HOMEPATH=\Documents and Settings\Administrator"
  9. set "LOGONSERVER=\\PC-200901071258"
  10. set "NUMBER_OF_PROCESSORS=2"
  11. set "OS=Windows_NT"
  12. set "Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files\StormII\Codec;C:\Program Files\StormII"
  13. set "PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"
  14. set "PROCESSOR_ARCHITECTURE=x86"
  15. set "PROCESSOR_IDENTIFIER=x86 Family 15 Model 107 Stepping 2, AuthenticAMD"
  16. set "PROCESSOR_LEVEL=15"
  17. set "PROCESSOR_REVISION=6b02"
  18. set "ProgramFiles=C:\Program Files"
  19. set "PROMPT=$P$G"
  20. set "SESSIONNAME=Console"
  21. set "SystemDrive=C:"
  22. set "SystemRoot=C:\WINDOWS"
  23. set "TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp"
  24. set "TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp"
  25. set "USERDOMAIN=PC-200901071258"
  26. set "USERNAME=Administrator"
  27. set "USERPROFILE=C:\Documents and Settings\Administrator"
  28. set "windir=C:\WINDOWS"
复制代码
***共同提高***

TOP

95# zm900612
我说的就是这个意思,只是没有说明罢了,呵呵。。。
***共同提高***

TOP

关于本次讨论的阶段性结论(个人版):
  
  1、cmd命令解释器在每一次运行时都向内存中重写一次系统变量信息(初始化系统变量),这就说明了为

什么我们无法在cmd中重设系统变量;

  2、cmd命令解释器将每产生的变量按照变量名大写字符的ansi序列机制临时写入内存中,形成一张变量表

并且在变量增加时会重写变量表,而当对已存在的变量进行读写操作时,则是按照ansi序列机制在变量表中进

行搜索比对一直到找到完全匹配的变量,那么当变量表中存在大量变量时,我们读写表前部的变量显然要比表

后部的变量要快,而出于效率上的考虑,我们在编写代码时应该尽量避免出现对大量的变量,同时尽量重复使

用同一变量名,万一要出现大量的变量,应使用setlocal-endlocal开关及时清空这些变量;

  3、对于setlocal-endlocal重写并复原变量的机制暂时没有搞清楚,因为在内存没有找到变量的第二个临时

储存位置。
***共同提高***

TOP

105# hanyeguxing
内存中的地址呢?怎么找不到?
***共同提高***

TOP

返回列表