我当前正在为一组可以使用它的用户创建脚本。在运行脚本之前,我使用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',以使该脚本可用,以检查每个用户在自己系统上的本地路径?
答案 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"
}
}