带有非静态文件名的 PowerShell -file 命令

带有非静态文件名的 PowerShell -file 命令

我正在使用 -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                                                                         
...
#>

相关内容