如果没用set赋值,a变量只是截取系统目录位置的字符串,而无法继续其它更多操作,除非再用set赋值a变量的其他属性再可以继续操作,这就是2个不同之处
set fs=createobject("scripting.filesystemobject")
set a=fs.getspecialfolder(0)
for each b in a.subfolders
wscript.echo b.path
next
wscript.echo "文件夹数"&a.subfolders.count
wscript.echo "文件数"&a.files.count
对象有默认属性,就是在不指明什么属性的情况下使用的属性,如err对象,若不指明是用什么属性表示使用err.number属性,所以经常会看到有err=0之类的很莫名的写法。你这个问题也是一样,其实你是使用了文件夹对象a.path属性,不信你用a.path试试效果也是一样的。
X=fso.getspecialfolder(N)其实是一种简略的写法,完整的写法为X=fso.getspecialfolder(N).path之类的。明白了吧。
最好加set,否则可能会出问题,上面的程序不加set就会出错,见图: