Get-ChildItem to Move-Item - 找不到路径

时间:2010-04-23 12:49:22

标签: powershell

我尝试将旧的日志文件移动到yyyy \ MM \ dd文件夹结构

Get-ChildItem . -Recurse -Include *.log | 
Move-Item -Dest {"D:\Archive\{0:yyyy\\MM\\dd}\{1}" -f $_.LastWriteTime, $_.Name} -Force

但我收到路径未找到的错误。

更新

源路径似乎不是问题。看起来在-Force上使用Move-Item似乎不会创建丢失的目标目录。


子问题:如果没有Get-ChildItem可以做同样的事吗?

2 个答案:

答案 0 :(得分:4)

据我发现提议的移动日志的方式几乎很有趣,我决定完成任务:

Get-ChildItem . -Recurse -Include *.log |
Move-Item -Force -Destination {
    $dir = "C:\Temp\{0:yyyy\\MM\\dd}" -f $_.LastWriteTime
    $null = mkdir $dir -Force
    "$dir\$($_.Name)"
}

答案 1 :(得分:1)

我想对于源文件“some.log”,目的地应该是“D:\ Archive \ 2010 \ 04 \ 23 \ some.log”和目录“D:\ Archive \ 2010 \ 04 \ 23“实际上不存在。在这种情况下,Move-Item失败。是这种情况吗?