PowerShell - Copie des fichiers spécifiques à partir des dossiers spécifiques
Le dossier de la structure ressemble à ceci:
- SourceFolder
- file1.txt
- file1.doc
- Subfolder1
- file2.txt
- file2.doc
- SubSubFolder
- file3.txt
- doc3.txt
- SubSubFolder
- Subfolder1
Ce que je veux faire est de copier tous les .txt des fichiers et des dossiers, dont l' (dossier) nom contient le fra, vers un dossier de destination. Juste tous les fichiers dans le dossier - pas la structure du fichier.
Ce que j'ai utilisé est: est-ce
$dest = "C:\Users\username\Desktop\Final"
$source = "C:\Users\username\Desktop\Test1"
Copy-Item $source\eng*\*.txt $dest -Recurse
Le problème, c'est qu'il copie la .txt uniquement les fichiers de chaque dossier parent, mais pas les sous-dossiers.
Comment puis-je inclure tous les sous-dossiers dans ce script, et de garder la fra nom de vérifier aussi bien? Pouvez-vous svp m'aider?
Je parle des commandes PowerShell. Dois-je utiliser robocopy à la place?
OriginalL'auteur John Enxada | 2015-03-17
Vous devez vous connecter pour publier un commentaire.
Encore un autre PowerShell solution 🙂
Vous êtes les bienvenus. Cochez cette réponse aussi (plus avancé script, gère les conflits de nom de fichier): superuser.com/a/894220/418201 vous ne Pouvez pas filtrer par nom de dossier, mais vous pouvez rip nom du fichier de code de vérification à partir de là si vous avez besoin d'.
OriginalL'auteur beatcracker
Vous pouvez faire ceci :
OriginalL'auteur Mathieu Buisson
Une autre façon de faire:
OriginalL'auteur mjolinor
Il peut être plus facile d'abord obtenir une liste de tous les dossiers qui contiennent
eng
dans le nom.OriginalL'auteur New Guy
Correct de faire cela avec powershell. Essayez:
Être prudent avec celui-ci. Elle correspond à un fichier qui contient "fre" n'importe où dans le chemin d'accès au fichier. Une des opérations suivantes correspondent à: C:\eng\file.txt, C:\lengend\file.txt, C:\directory\file-eng.txt, etc.
Pour préciser, mon commentaire ci-dessus a été seulement si $source est égale à C:\. Mes exemples utilisés C:\ comme la racine pour des raisons de concision, mais le problème est le même.
mis à jour. Il y a une case pour voir si le nom du répertoire du fichier comprend
eng
. En tant que "petit Nouveau", souligne, qui pourrait apparaître n'importe où dans l'arbre, mais comme vous êtes le réglage de votre répertoire source, il ne devrait pas être un problème iciLe problème peut encore se produire. Voici quelques exemples qui correspondent à la source de l'OP a précisé: C:\Users\username\Desktop\Test1\english\file.txt, C:\Users\username\Desktop\Test1\eng\file.txt, C:\Users\username\Desktop\Test1\bioengineering\file.txt Il est peut-être le cas, les OP n'ont pas à vous soucier de ce que les noms des fichiers peuvent être cohérent et bien connu. Toutefois, les utilisateurs et les administrateurs ont tendance à créer des incohérences. Il est probablement préférable de regarder de chaque dossier BaseName et assurez-vous qu'il commence avec
eng
plutôt que d'être au milieu ou à la fin du nom.OriginalL'auteur arco444