Get-ChildItem для Move-Item - путь не найден - PullRequest
3 голосов
/ 23 апреля 2010

Я пытаюсь переместить мои старые файлы журналов в структуру папок yyyy \ MM \ dd с помощью

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

, но я получаю ошибку, не найденную в пути.

update

Путь к источнику не является проблемой.Похоже, использование -Force на Move-Item не создает отсутствующие целевые каталоги.


под вопрос : можно ли сделать то же самое без Get-ChildItem?

Ответы [ 2 ]

4 голосов
/ 24 апреля 2010

Поскольку предложенный способ перемещения бревен мне показался практически интересным, я решил выполнить задачу:

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 голос
/ 23 апреля 2010

Полагаю, что для исходного файла «some.log» местом назначения должно быть что-то вроде «D: \ Archive \ 2010 \ 04 \ 23 \ some.log» и каталогом «D: \ Archive \ 2010 \» 04 \ 23 ”на самом деле не существует. В этом случае Move-Item не работает. Это тот случай?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...