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

PowerShell脚本文件复制异常求助:无当日文件时复制全部文件

问题分析

你的脚本核心问题出在复制环节:当没有当日符合条件的文件时,$files是空集合,将其转为字符串传入Get-ChildItem -filter时,空字符串会让Get-ChildItem返回源目录下所有非文件夹,最终导致所有文件被错误复制。而你原本筛选好的$files集合完全没有被复用,反而重新执行了一次错误的文件检索。

修复后的脚本
$fromDir = "\\fil\folder\path\files" 

$destinationMask = Join-Path "C:\XXX\ABCD_K_Integration\F_datafiles" "{0}.kis.txt" 
    
# 一次性筛选符合所有条件的文件
$files = Get-ChildItem $fromDir `
    | Where-Object { $_.Name -match "ALMR12_\d+.txt" -and !$_.PSIsContainer -and $_.LastWriteTime -gt (Get-Date -Hour 0 -Minute 0 -Second 0) }
    
# 仅当存在符合条件的文件时执行复制
if ($files) {
    $files | Copy-Item -Destination { $destinationMask -f $_.BaseName }
}
关键修改点
  • 合并Where-Object条件,简化筛选逻辑,减少不必要的管道传递
  • 直接使用已筛选完成的$files集合执行复制,彻底规避原脚本中-filter参数误用的问题
  • 添加if ($files)判断,确保只有存在符合要求的文件时才触发复制,无匹配文件时直接跳过操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:34:54