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

PowerShell:使用变量存储路径移文件触发PathNotFound错误求助

PowerShell移动文件提示PathNotFound的解决方法

问题分析

你遇到的PathNotFound错误来自三个隐藏问题:

  1. TXT文件读取路径错误:用Get-Content $file.Name时,若当前工作目录不是.\PowerShell_script\,系统会在当前目录找txt文件,而非目标文件夹。
  2. 文件名末尾带空格:TXT第7行的路径末尾有多余空格,导致Split-Path提取的文件名带空格,拼接后的路径指向不存在的文件。
  3. 路径拼接不严谨:直接用+拼接路径容易出现分隔符问题,比如漏加或多加斜杠。

修复后的代码

$importfolder    = ".\PowerShell_script\" 
$outputfolder    = ".\PowerShell_script\Output\"

$filesTXT = ".\PowerShell_script\*.txt" 

# 直接获取FileInfo对象,而非仅文件名,避免路径问题
$list = Get-ChildItem -Path $filesTXT

foreach($file in $list) {
    # 用文件的完整路径读取内容,确保不会找不到txt文件
    $imagetemp = Get-Content $file.FullName | Select-Object -Skip 6 -First 1 
    # 先去除字符串首尾空格,再提取文件名
    $imagename = Split-Path $imagetemp.Trim() -leaf  
    # 用Join-Path安全拼接路径,避免分隔符错误
    $imagefile = Join-Path -Path $importfolder -ChildPath $imagename

    Write-Host "`n图片原始路径:" $imagetemp
    Write-Host "`n提取的文件名:" $imagename
    Write-Host "`n待移动的完整路径:" $imagefile
    
    # 先检查文件是否存在,再执行移动
    if (Test-Path $imagefile) {
        Move-Item $imagefile -Destination $outputfolder
        Write-Host "`n文件移动成功"
    } else {
        Write-Host "`n错误:文件不存在 - $imagefile"
    }
}

关键修复点说明

  • 用FileInfo对象处理文件:Get-ChildItem直接返回的对象包含FullName属性,确保读取txt文件时路径绝对正确。
  • 去除字符串首尾空格:$imagetemp.Trim()去掉TXT行末尾的多余空格,保证提取的文件名准确。
  • 用Join-Path拼接路径:自动处理路径分隔符,避免手动拼接时的错误。
  • 增加存在性检查:用Test-Path提前验证文件是否存在,避免无意义的错误提示,同时输出明确的状态信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:55:20