在PowerShell中使用forfiles将文件移动到名称超过一个单词的文件夹时遇到问题

时间:2019-05-27 09:38:39

标签: cmd forfiles

我是PowerShell的新手,正在尝试使用forfiles命令将一些excel电子表格移动到名为“旧文件夹”的文件夹中。 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”,并且效果很好。我在做什么错了?

2 个答案:

答案 0 :(得分:0)

您的/ C参数的语法似乎有问题。据我所知,该参数应该用双引号引起来。并且由于文件名中的空格,也应使用双引号将其引起来。引号内的引号应使用反斜杠转义。 我建议:

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

答案 1 :(得分:0)

由于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