如何在PowerShell中打印被移动的符合条件的MP4文件记录
解决方法
首先修正你代码里的逻辑问题,再添加文件移动的日志输出:
1. 修正$MP4Lenght的逻辑错误
你当前的$MP4Lenght = (Get-ChildItem -Path $RenderFolder).Length -ne "0"是在判断$RenderFolder下的文件总数是否不为0,而非判断MP4文件的大小是否大于0。正确写法应检查该目录下是否存在大小大于0的MP4文件:
# 检查RenderFolder下是否有大小大于0的MP4文件 $validMP4Exists = @(Get-ChildItem -Path $RenderFolder -Filter *.mp4 | Where-Object { $_.Length -gt 0 }).Count -gt 0
2. 添加移动文件的日志输出
以下两种方式均可实现打印每个被移动文件的信息:
方式一:分步遍历处理(直观易读)
逐个处理文件,移动完成后立即打印日志:
$SchoolFolder = "C:\Users\MyUser\Desktop\School Folder\$StudentName\$Month. $MonthWrite\$Day. $DayWrite" # 修正后的MP4有效性判断 $validMP4Exists = @(Get-ChildItem -Path $RenderFolder -Filter *.mp4 | Where-Object { $_.Length -gt 0 }).Count -gt 0 $MP4existsToCopy = Test-Path -Path "$RenderFolder\*.mp4" If ($MP4existsToCopy -and $validMP4Exists) { # 提前创建目标目录,避免Move-Item报错 $targetDir = New-Item -Type Directory -Force (Join-Path $SchoolFolder $newSub) # 遍历符合条件的文件,移动并打印日志 Get-ChildItem $MyFolder | Where-Object { $_.Length -gt 0KB } | ForEach-Object { Move-Item -Path $_.FullName -Destination $targetDir -Force -ErrorAction SilentlyContinue # 打印完整路径,若只需文件名可替换为$_.Name Write-Host "[$($_.FullName)] was moved" } Write-Host "Done!" }
方式二:利用-PassThru参数批量处理
让Move-Item返回被移动的文件对象,再批量打印日志:
$SchoolFolder = "C:\Users\MyUser\Desktop\School Folder\$StudentName\$Month. $MonthWrite\$Day. $DayWrite" $validMP4Exists = @(Get-ChildItem -Path $RenderFolder -Filter *.mp4 | Where-Object { $_.Length -gt 0 }).Count -gt 0 $MP4existsToCopy = Test-Path -Path "$RenderFolder\*.mp4" If ($MP4existsToCopy -and $validMP4Exists) { $targetDir = New-Item -Type Directory -Force (Join-Path $SchoolFolder $newSub) # 用-PassThru获取移动的文件对象,链式打印日志 Get-ChildItem $MyFolder | Where-Object { $_.Length -gt 0KB } | Move-Item -Destination $targetDir -Force -ErrorAction SilentlyContinue -PassThru | ForEach-Object { Write-Host "[$($_.FullName)] was moved" } Write-Host "Done!" }
补充说明
- 用
Join-Path代替字符串拼接$SchoolFolder + $newSub,可避免路径分隔符缺失/重复的问题 $validMP4Exists的判断逻辑,确保只有存在有效大小的MP4文件时,才执行后续移动操作,符合你原本的需求
内容的提问来源于stack exchange,提问作者Tyrone Hirt
相关产品推荐
相关产品推荐

