文档目录是否有系统定义的环境变量?

Ono*_*cci 58 windows environment-variables

我知道%USERPROFILE%Windows XP(以及Vista和Windows 7)上的系统定义环境变量.是否有系统定义的环境变量指向"我的文档"目录的位置?默认情况下在XP上%USERPROFILE%\My Documents,在Win 7上它是%USERPROFILE%\Documents.我只是想避免在Powershell脚本中测试操作系统版本,如果我可以避免它.

fli*_*erg 33

对于powershell,以下工作:

[environment]::getfolderpath("mydocuments")
Run Code Online (Sandbox Code Playgroud)

并避免魔术弦

[Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments)
Run Code Online (Sandbox Code Playgroud)

对于.NET,以下内容适用(即不适用于所有 Windows应用程序):

正如一个答案所指出的,没有环境变量指向我的文档,但有Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)(C#)for .NET.

因为谷歌搜索时C#,环境变量和我的文档和贾斯汀的回答不包含此问题来了我加入这个答案代码行:)

使用上面提到的代码行是在.NET中访问我的文档的首选方法:)

复制粘贴此行以获取C#用法:

var directoryNameOfMyDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Run Code Online (Sandbox Code Playgroud)

请注意,C#需要MyDocuments中的大写字母D.


mst*_*ger 30

在我的默认安装XP系统上,没有环境变量.您可以在命令行中使用"set"命令(无参数)列出所有变量.所以你可能需要做一个测试.

如果您不想测试操作系统版本,只需检查"文档"是否存在,如果不存在,则尝试"我的文档",反之亦然.然而,这并不完美,因为s/o可能在他的XP机器上有一个"Documents"文件夹.

顺便说一句:我的系统是德语,所以该文件夹名为"Dokumente".您可能需要考虑到这一点.

该文件夹的路径存储在

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Run Code Online (Sandbox Code Playgroud)

Personal.但是,您需要注册表访问权限.

资料来源:微软

  • 关于该注册表项的优秀建议. (4认同)

Hip*_*x43 22

没有内置的环境变量,但在PowerShell中,您可以找到以下位置:

[Environment]::GetFolderPath("mydocuments")
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下方法创建环境变量:

$env:DOCUMENTS = [Environment]::GetFolderPath("mydocuments")
Run Code Online (Sandbox Code Playgroud)


Nic*_*aly 14

(只是重申之前的答案)没有为"我的文档"目录提供开箱即用(WinXP)的环境变量.

但是,您可以使用以下命令设置变量:

在Windows 7/8.1上测试:

for /f "tokens=3* delims= " %a ^
in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') ^
do (set mydocuments=%a %b)
Run Code Online (Sandbox Code Playgroud)

或(一个班轮)

for /f "tokens=3* delims= " %a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') do (set mydocuments=%a %b)
Run Code Online (Sandbox Code Playgroud)

然后会给你一个%mydocuments%变量:

C:\>echo mydocuments="%mydocuments%"

mydocuments="C:\pathto\My Documents"
Run Code Online (Sandbox Code Playgroud)

(有没有人使用XP/Vista?如果是,可以测试一下,让我们知道它是否有效?)


Jus*_*tin 7

如果输入:

set
Run Code Online (Sandbox Code Playgroud)

在命令提示符中,您将获得系统上定义的所有环境变量的列表.

看看我的定义(Windows 7 Home Premium),它们似乎都没有指向我的文档.

供参考:

SHGetSpecialFolderPath函数可用于获取路径My Documents目录.或者,可以在.Net下使用Environment.GetFolderPath方法


Moi*_*sei 5

C:\Documents and Settings\mrabinovitch>set | grep -i document
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\myuser\Application Data
HOMEPATH=\Documents and Settings\myuser
USERPROFILE=C:\Documents and Settings\myuser
Run Code Online (Sandbox Code Playgroud)

你可以看到没有这样的可怜.