PowerShell使用变量切换至AppData目录的问题求助
动态定位AppData文件夹的解决方案
最优实现方案
PowerShell本身提供了现成的环境变量,直接调用就能定位到当前用户的AppData目录,完全不需要手动获取用户名拼接路径:
- 定位到AppData\Roaming:
Set-Location $env:APPDATA - 定位到AppData\Local:
Set-Location $env:LOCALAPPDATA - 如果需要用户主目录(C:\Users\用户名),直接用:
Set-Location $env:USERPROFILE
现有脚本的问题修正
你的脚本存在两个核心问题:
- 获取用户名的流程过于繁琐,且通过
Out-String转换对象容易引入多余字符 - PowerShell中字符串拼接语法错误,不能用
"C:\Users" + $temp1这种写法
修正后的脚本示例:
# 直接获取当前登录用户名(避免多余的字符串转换) $userName = (Get-WmiObject Win32_ComputerSystem -ComputerName "localhost").UserName.Split("\")[1] # 用变量嵌入的方式拼接路径(PowerShell推荐写法) Set-Location "C:\Users\$userName" # 或者如果要直接到AppData: Set-Location "C:\Users\$userName\AppData\Roaming"
内容的提问来源于stack exchange,提问作者mojo
相关产品推荐
相关产品推荐

