在Powershell中获取用户的“文档”文件夹

40

我想使用 PowerShell 脚本来自动化与用户登录相关的任务。

有时,用户可能已将其“文档”文件夹从默认位置移动。如何在 PowerShell 中确定用户“文档”文件夹的位置?


您最新的修改使问题发生了很大的变化。您最初提出的问题已得到回答,请发布一个问题,询问如何从GUID查找文件夹路径。 - Harry Johnston
4个回答

72

试试这个:

[Environment]::GetFolderPath("MyDocuments")

1
你好,它可以用于一些文件夹,但不是全部。例如,我无法使用此方法检索系统的“已保存游戏”文件夹(或者我没有做正确)。 - Zulgrib
在此处创建了另一个相关问题:https://dev59.com/soLba4cB1Zd3GeqPZAlH - Zulgrib
这个不起作用:Set-Location [Environment]::GetFolderPath("MyDocuments") Set-Location: 找不到接受参数"MyDocuments"的位置参数。 但是,如果我像Deeps一样创建一个变量,它就可以工作了。 - Timo
1
@Timo 你需要在第二个函数调用周围添加括号:Set-Location ([Environment]::GetFolderPath("MyDocuments"))。 你不能只是这样做 Do-Something -Path Get-Something -Param,但是 Do-Something -Path (Get-Something -Param) 可以。 - sk22
我想使用 python 访问我的用户的 documents 窗口文件夹。我使用的是德语版的 Windows。原始文档字符串应该放在英语还是德语中?目前手头没有 Windows 可以尝试。我需要 documents = os.path.join(home, 'documents') - Timo
我想使用以下命令设置一个别名/函数:function pic { Set-Location -path ([Environment]::GetFolderPath("Mypictures"))}。结果是:无法识别'C:\Users\User\Pictures'作为cmdlet的名称... - Timo

18

要获取已知文件夹名称列表,请使用以下命令:

[enum]::GetNames( [System.Environment+SpecialFolder] )

获取名称和路径列表:

[enum]::GetNames( [System.Environment+SpecialFolder] ) | 
    Select @{ n="Name"; e={$_}},
        @{ n="Path"; e={ [environment]::getfolderpath( $_ ) }}

3
$mydocuments = [environment]::getfolderpath("mydocuments")

你好,它可以用于某些文件夹,但不是所有的,例如,我无法使用此方法检索系统的“已保存游戏”文件夹(或者我没有正确地执行)。 - Zulgrib

0
类似于其他答案,但允许在IDE中使用智能感知来查看/确认所有预定义的SpecialFolder枚举选项的名称。
[Environment]::GetFolderPath([System.Environment+SpecialFolder]::MyDocuments)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接