You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Powershell如何为变量存储的日志文件路径添加log子目录

解决方案

核心实现逻辑是拆分原脚本路径的目录、文件名两部分,将log子目录插入到目录层级中,再拼接改后缀后的日志文件名,同时提前自动创建log目录避免写入报错。
你之前使用Join-Path报错的原因是直接将完整的日志文件绝对路径和log拼接,会把log识别为文件名的后缀层级,而非上级目录。

修改后的完整函数代码如下:

function ExportLog{
    # 拆分原始脚本的所在目录和文件名
    $scriptPath = $MyInvocation.ScriptName
    $scriptDir = Split-Path -Path $scriptPath -Parent
    $scriptName = Split-Path -Path $scriptPath -Leaf

    # 构造log子目录路径,不存在则自动创建
    $logDir = Join-Path -Path $scriptDir -ChildPath "log"
    if (-not (Test-Path -Path $logDir)) {
        New-Item -ItemType Directory -Path $logDir | Out-Null
    }

    # 构造最终的日志文件路径
    $logFileName = [io.path]::ChangeExtension($scriptName,"log")
    $LogFile = Join-Path -Path $logDir -ChildPath $logFileName

    Write-Host $LogFile
    $timestamps = Get-Date
    $string_err = $_ | Out-String
    "[" + $timestamps.DateTime + "]`n" + $string_err + "`n"| Out-File -FilePath $LogFile -Append

    Read-Host "Appuyez sur ENTRER pour quitter..."
}

改动说明:

  • 新增了脚本路径拆分逻辑,单独获取脚本所在目录和纯文件名
  • 新增log目录自动创建逻辑,避免第一次写入时目录不存在报错
  • 先拼接log目录路径,再和改后缀的日志文件名拼接,最终得到的路径格式为[脚本所在目录]\log\[脚本名].log,符合需求。

内容的提问来源于stack exchange,提问作者Livarkhal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:36:03