旧PowerShell Move-Item脚本在新Windows 11系统中无法运行
PowerShell脚本无操作问题排查方案
验证筛选条件有效性
先单独执行筛选逻辑,确认是否有符合条件的文件被选中:Get-ChildItem -File -Filter "*.m4a" -Path "C:\directory\live" -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-61)} | Select-Object FullName, LastWriteTime同时手动计算61天前的日期(执行
(Get-Date).AddDays(-61)查看具体值),和文件的LastWriteTime对比,确保条件逻辑正确。检查管理员权限
C盘目录的操作可能受UAC限制,右键PowerShell选择「以管理员身份运行」后再执行脚本,避免权限不足导致的静默失败。确认路径准确性
核实C:\directory\live和C:\directory\temp的路径是否完全正确,比如是否遗漏了用户目录前缀(如C:\Users\你的用户名\directory\...),避免路径不存在导致的无操作。启用详细输出排查
给Move-Item添加-Verbose参数,查看执行时的详细日志,确认是否有文件进入移动流程:Get-ChildItem -File -Filter "*.m4a" -Path "C:\directory\live" -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-61)} | Move-Item -Destination "C:\directory\temp" -Verbose核实文件LastWriteTime属性
排查文件复制到新磁盘后LastWriteTime是否被意外修改,执行以下命令列出所有目标文件的修改时间:Get-ChildItem -File -Filter "*.m4a" -Path "C:\directory\live" -Recurse | Sort-Object LastWriteTime | Select-Object FullName, LastWriteTime确认是否存在真正符合「早于61天前」的文件。
内容的提问来源于stack exchange,提问作者Jakub Grula
相关产品推荐
相关产品推荐

