2010-04-23 53 views
3

我尝试获取-ChildItem到布展项目 - 未找到路径

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

移动我的旧日志文件到YYYY \ MM \ DD文件夹结构,但我得到的路径未找到错误。

更新

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


子问题:能否同样可以做到人无GET-ChildItem?

回答

3

至于我发现移动日志几乎有趣的建议办法,我决定完成任务:

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

我将我的接受转移到了这个答案上,并列入了列表的顶部。再次感谢您的支持! – Filburt 2010-04-28 08:52:00

1

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

+0

号,源目录是现有文件夹的地方相同的驱动器和源(。) item正确存在,因为使用-WhatIf正确呈现源项FullName来运行相同的命令。 – Filburt 2010-04-23 14:18:45

+0

我正在谈论目标目录D:\ Archive \ 2010 \ 04 \ 23中的最后一次写入文件2010-04-23。 Move-Item不会创建错过的目标目录,它会失败。 – 2010-04-23 14:30:53

+0

如果我没有错误地使用'Move-Item -Force'应该创建丢失的目标目录。 – Filburt 2010-04-23 14:48:58