每个人的测试路径

时间:2018-07-24 14:18:17

标签: powershell

我当前正在为一组可以使用它的用户创建脚本。在运行脚本之前,我使用Test-Path "C:\Users\vincentw\allapps.txt验证本地系统上是否存在allapps.txt:

if (!(Test-Path "C:\Users\vincentw\allapps.txt")) {
    "All sw/apps" >> allapps.txt
    "-------------------------------------------------------" >> allapps.txt
    (Get-WmiObject Win32_Product |
        where {$_.Vendor -notmatch "Advanced"} | 
        Format-List name, Vendor, Version |
        Out-String).Trim() >> allapps.txt
    "-------------------------------------------------------" >> allapps.txt
} else {
    Write-Host "WARNING: File already exists!"
    break
}

但是,脚本验证仅在我的本地系统上有效。我想知道有没有办法替换我的本地用户名-'vincentw',以使该脚本可用,以检查每个用户在自己系统上的本地路径?

1 个答案:

答案 0 :(得分:2)

如果脚本将由其用户在其计算机上运行,​​则可以使用 $ env:USERPROFILE

Test-Path "$($env:USERPROFILE)\allapps.txt"

如果要在所有配置文件中执行此操作,则可以执行以下操作

Get-ChildItem "C:\Users\" -Directory | foreach-object{ 
    If(!(test-path "$($_.FullName)\allapps.txt")){
        "Missing : $($_.FullName)\allapps.txt"
    }Else{
        "Found : $($_.FullName)\allapps.txt"
    }
}