web-dev-qa-db-ja.com

PowerShell: 'IF'ステートメントで$ env:userprofileを使用する

PowerShell ISEを使用しています(4つと思います)。

古い '* .BAT'ファイルを置き換えるログオンスクリプトを書いています。

デスクトップから特定のディレクトリを「作成/削除」する前に、ユーザープロファイルの状態をテストしようとしています。

If(($env:userprofile = "rmullins"))
    {
        Remove-Item $env:userprofile\Desktop\ITFILES -Recurse -Force
    }

だから私は何が起こっているのかを見るために次を実行します:

md -Path $env:userprofile\Desktop\ITFILES

パスは次の場所に作成されます:C:\ Windows\System32 .........

上記のMDコマンドは、「IF」ステートメントを実行するまで正常に機能します。 $env:userprofileパーツは機能します。

何か案は?

8
banditFox

Windows 7の場合:

[PS]> echo $ENV:UserProfile
C:\Users\arco444

これにより、プロファイルディレクトリへのパスが返されます。したがって、ユーザー名のみを探して条件を満たさないことを期待します。代わりに単純な一致を行います。

if ($env:userprofile -imatch "rmullins")
{
    Remove-Item $env:userprofile\Desktop\ITFILES -Recurse -Force
}
13
arco444