VBS怎么获取系统AppData文件夹路径
我有一个文件夹D:\aa现在想复制到C:\Users\yonghu\AppData\Local\文件夹下。明白的人都知道,XP,WIN7或者不同的用户名这个路径就不是绝对...
我有一个文件夹D:\aa现在想复制到C:\Users\yonghu\AppData\Local\文件夹下。
明白的人都知道,XP,WIN7或者不同的用户名这个路径就不是绝对的,像批处提的话可以直接用%AppData%\Local直接获取到该路径,可VBS怎么就不识别这个相对路径呢?请VB高手出山,这个复制代码应该怎么写?
大师,不知道为什么,正如你所说,我WIN7下,运用以上代码有问题,我指定%AppData%\Local这个路径可VBS执行时得到的总是%AppData%\Roaming这个
,完整的复制代码是这样的么:
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%")
wscript.echo strHomeFolder
CreateObject("Scripting.FileSystemObject").CopyFolder "D:\aa\bb","%AppData%\Local\cc"
我的意思就是想把bb这个文件夹下面所有的文件包括子目录复制到cc文件夹下。 展开
明白的人都知道,XP,WIN7或者不同的用户名这个路径就不是绝对的,像批处提的话可以直接用%AppData%\Local直接获取到该路径,可VBS怎么就不识别这个相对路径呢?请VB高手出山,这个复制代码应该怎么写?
大师,不知道为什么,正如你所说,我WIN7下,运用以上代码有问题,我指定%AppData%\Local这个路径可VBS执行时得到的总是%AppData%\Roaming这个
,完整的复制代码是这样的么:
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%")
wscript.echo strHomeFolder
CreateObject("Scripting.FileSystemObject").CopyFolder "D:\aa\bb","%AppData%\Local\cc"
我的意思就是想把bb这个文件夹下面所有的文件包括子目录复制到cc文件夹下。 展开
展开全部
%AppData%路径的获取,可以通过两种方式,
1) 环境变量
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%")
wscript.echo strHomeFolder
2) shell的Namespace空间
Const ssfAPPDATA = &H1A
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfAPPDATA).Self.Path
wscript.echo strHomeFolder
都可以“动态”的得到用户的AppData路径,后面自己添加Local字符串即可。(Win7下面AppData环境变量是要输出AppData\Roaming目录的,而Local和Roaming是平级,同样都是AppData下的子目录)
更多追问追答
追问
大师,你看下问题补充,这个是什么情况
追答
如果要得到AppData\Local这个目录,而不是%AppData%(这个显示AppData\Roaming),用这个代码:
Const ssfAPPDATA = &H1C
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfAPPDATA).Self.Path
wscript.echo strHomeFolder
就是上面的方法2,但修改了参数(&H1A->&H1C)。
结合你的例子:
Const ssfAPPDATA = &H1C
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfAPPDATA).Self.Path
strAppDataPath = strHomeFolder & "\cc"
Wscript.Echo strAppDataPath
'CreateObject("Scripting.FileSystemObject").CopyFolder "D:\aa\bb",strAppDataPath
确认strAppDataPath是你要的最终路径后,可以把下一句CreateObject前面的'去掉,即可运行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询