3

これは、私が試した最初のPowerShellスクリプトです。実行すると、パート1は正常に実行され、log.txtが作成されますが、再度実行した後もパート1が実行されます。ログファイルが存在するかどうかを確認するにはどうすればよいですか。

編集:違いが生じる場合は、PowerShellISEからスクリプトを実行していることを忘れました。

#Variables.
#Set working directory to scripts location.
$scriptpath = $MyInvocation.MyCommand.Path
$dir = Split-Path $scriptpath

#Check if log file exists.
$ChkFile = "%userprofile%\Desktop\log.txt" 
$FileExists = (Test-Path $ChkFile -PathType Leaf)

#Set dir to script location.
Set-Location $dir

#Part 1.
If (!($FileExists)) 
{
    Write-Host "Part 1"
    echo 0 >>log.txt
}
#Part 2.
ElseIf ($FileExists)
{
    Write-Host "Part 2"
}
4

1 に答える 1

7

%cmd.exe変数拡張用です。PowerShellには別の構文が必要です。代わりに以下を使用してください:

 "$env:userprofile\Desktop\log.txt" 
于 2012-05-31T22:46:10.533 に答える