3

这是我尝试的第一个 powershell 脚本。当我运行它时,第 1 部分运行良好并创建 log.txt,但再次运行后它仍然运行第 1 部分。如何检查日志文件是否存在?

编辑:我忘了提到我正在从 PowerShell ISE 运行脚本,如果这有影响的话。

#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 回答