我正在使用 -file filename 命令运行 powershell.exe,如果我设置静态文件名,它会起作用,但我需要它指向当前用户。我尝试使用
-File C:\%username%\restofpath
-File C:\$username\restofpath
但没有人打开 .ps1 文件
答案1
对于这一点:
-File C:\%username%\restofpath
-File C:\$username\restofpath
第一个是cmd.exe
批处理文件格式的命令,按照所写,它在 PS shell 中应该会失败。
除非您在其他地方设置了 $username 变量,否则第二个变量不是当前用户名。
PowerShell 内置环境变量将显示您可以获得的内容。
Get-ChildItem -Path 'env:\'
您必须使用全名才能在代码中动态获取/使用它们作为变量。
$env:USERNAME
$env:USERPROFILE
$env:USERDOMAIN
$env:USERDNSDOMAIN
etc...
那么这样:
$env:USERNAME
$env:USERPROFILE
$env:USERDOMAIN
# Results
<#
WDAGUtilityAccount
C:\Users\WDAGUtilityAccount
BD505E85-E891-4
#>
Get-ChildItem -Path "$env:USERPROFILE\*"
# Results
<#
Directory: C:\Users\WDAGUtilityAccount
Mode LastWriteTime Length Name
---- ------------- ------ ----
...
d-r--- 11/4/2022 3:18 PM Documents
d-r--- 11/4/2022 3:18 PM Downloads
...
#>