不幸的是,如果您已从相对于配置文件的默认路径中重定向了此变量,则无法从批处理脚本中检查该变量。您可以在此处查看环境变量的完整列表(包括一些未记录的信息):
http://ss64.com/nt/syntax-variables.html
要记住的另一件事是,文件夹重定向甚至允许您将它们移至网络共享。不必有一个可以全部使用的“驱动器”。它可能只是UNC路径。
好消息是您想要的信息可在以下位置的注册表中找到:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell文件夹\个人
您可以在该User Shell Folders
键中移动一整套文件夹,但是使用Windows Batch在此处读取“我的文档”文件夹看起来像这样:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal
在我的机器上,这将产生以下输出,根据您的需求以及您对Windows Batch脚本的满意程度,这些输出可能或多或少对您有用:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell文件夹
个人REG_EXPAND_SZ C:\ Users \ joel \ Documents
您也可以尝试vbscript:
Set wshshell = CreateObject("WScript.Shell")
Documents = wshShell.SpecialFolders("MyDocuments")
或Powershell:
[Environment]::GetFolderPath('MyDocuments')
这也许最终也可以通过Windows上的bash来使用(真的!),但是我还没有看到如何以始终如一的精确度来做到这一点。