使用 forfiles 将 PowerShell 中的文件移动到名称有多个单词的文件夹时出现问题

Trouble moving files in PowerShell using forfiles to a folder whose name has more than one word

我是 PowerShell 的新手,我正在尝试使用 forfiles 命令将一些 excel 电子表格移动到名为 "old folder" 的文件夹中。 PowerShell 说文件已被移动,但当我检查文件夹时,它们不在那里。它们也不在原来的位置。

forfiles /P C:\Users\NewUser\Desktop /M *.xlsx /D +27/05/2019 /C 'cmd /c move @file C:\Users\NewUser\Desktop\"old folder"\'

我尝试将文件夹名称更改为单个单词 "oldfolder",但效果很好。我做错了什么?

您的 /C 参数的语法似乎有问题。据我所知,参数应该包含在 double-quotes 中。并且由于文件名中的 space 也应该包含在 double-quotes 中。引号内的引号应该用反斜杠转义。 我建议这样做:

forfiles /P C:\Users\NewUser\Desktop /M *.xlsx /D +27/05/2019 /C "cmd /c move @file \"C:\Users\NewUser\Desktop\old folder\""

由于 forfiles 即使在 cmd 中也有它的特性,我不会将其拖到 PowerShell 中。
IIUR 转换为:

Get-ChildItem 'C:\Users\NewUser\Desktop\*.xlsx' -File |
    Where-Object LastWriteTime -ge [DateTime]::Today |
        Move-Item -Destination 'C:\Users\NewUser\Desktop\old folder\'

不确定您的意思是 /D -27/05/2019 => -lt 还是 -le 而不是 -ge