2010-04-23 2 views
3

J'essaie de déplacer mes vieux fichiers journaux à un yyyy \ MM \ la structure dd du dossier parGet-ChildItem pour Move-Item - chemin non trouvé

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

mais j'obtiens une erreur chemin non trouvé.

mise à jour

Le chemin source ne semble pas être le problème. Il semble que l'utilisation de -Force sur Move-Item ne crée pas de répertoires de destination manquants.


question sous: pourrait même se faire sans Get-ChildItem?

Répondre

3

Pour autant que je trouve le chemin proposé de déplacer des billes pratiquement intéressantes, j'ai décidé de compléter la tâche:

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

J'ai déplacé mon acceptation à cette réponse, pour avoir en tête de liste. Merci encore pour votre soutien! – Filburt

1

Je suppose que pour un fichier source "some.log" la destination est supposée être quelque chose comme "D: \ Archive \ 2010 \ 04 \ 23 \ some.log" et le répertoire "D: \ Archive \ 2010 \ 04 \ 23 "n'existe pas réellement. Dans ce cas, Move-Item échoue. Est-ce le cas?

+0

Non, le répertoire source est un dossier existant quelque part le même lecteur et la source (.) L'élément existe positivement car l'exécution de la même commande avec -WhatIf rend correctement l'élément source FullName. – Filburt

+0

Je parle du répertoire de destination D: \ Archive \ 2010 \ 04 \ 23 pour un fichier dont la dernière date d'écriture est le 2010-04-23. Move-Item ne crée pas de répertoire de destination manqué, il échoue. –

+0

Si je ne me trompe pas en utilisant 'Move-Item -Force' devrait créer des répertoires de destination manquants. – Filburt