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