Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Lister plusieurs fichiers depuis plusieurs dossiers


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Lister plusieurs fichiers depuis plusieurs dossiers
    Bonjour à tous,

    j'aimerai savoir s'il était possible de faire les actions ci-dessous depuis un script Powershell:

    1: via une boucle créer et renseigner un fichier liste.txt à partir d'une recherche de 16 fichiers horodatés à J-1 se trouvant dans 16 dossiers différents.
    2: de ce fichier liste, copier ces fichiers vers un dossier unique en les préfixant.
    3: mover les 16 fichiers d'origine,dans leur dossier d'archivage respectif.

    Pour le moment j'ai trouvé comment comment copier tous les fichiers horodatés à J-1 d'un seul répertoire vers un autre.

    Code PowerShell :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    $Datemoins1 = (get-date).AddDays(-1).ToString("yyyMMdd")
    foreach ($i in get-childitem C:\Temp | where {$_.Name -match "${Datemoins1}"}) {move-item -path $i -destination C:\Temp\ALL\}


    Si vous pouviez m'aider à réaliser ce script,merci d'avance.

  2. #2
    Membre à l'essai
    Re,

    j'ai trouvé comment lister les fichiers qu'il me faut,depuis une directory comportant plusieurs répertoires en excluant 1 fichier dont je n'ai pas besoin:

    Code PowerShell :Sélectionner tout -Visualiser dans une fenêtre à part
    $Files = Get-ChildItem "C:\Temp\" *$Datemoins1.csv -Recurse -Exclude "Yapa__$Datemoins1.csv"


    J'arrive à renommer des fichiers se trouvant dans un seul répertoire via la commande ci-dessous,mais pas depuis plusieurs répertoire avec ma variable $Files :

    Code PowerShell :Sélectionner tout -Visualiser dans une fenêtre à part
    (Get-ChildItem -File) | Rename-Item -NewName {$_.Name -replace "^","Yapa_"} -Exclude "Yapa__*$Datemoins1.csv


    Je cherche maintenant à utiliser la valeur de cette variable,pour les renommer,les copier dans leur sous répertoire respectif .\archive ,et les déplacer tous vers un seul autre répertoire unique.

    Pourriez vous m'aider svp ?

  3. #3
    Expert confirmé
    1: via une boucle créer et renseigner un fichier liste.txt à partir d'une recherche de 16 fichiers horodatés à J-1 se trouvant dans 16 dossiers différents.
    Les 16 dossiers se trouvent t'ils dans un même dossier racine ou sont il éparpillés ? Comment définis tu ta recherche ? Y à t'il un pattern de correspondance possible ? Comment pouvons nous deviné ce qui est à exclure ?

    2: de ce fichier liste, copier ces fichiers vers un dossier unique en les préfixant.
    On copie les 16 dans un dossier en les préfixant de quoi ? Y a t'il un risque de doublon ? Doit on écraser si cela se produit ? Ou est définit ce dossier unique ?

    3: mover les 16 fichiers d'origine,dans leur dossier d'archivage respectif.
    Ou sont ces dossiers d'archivages respectifs ? Comment définit tu le lien entre la source et la destination ? Y a t'il une table de correspondance ?


    Je pense que la demande n'est pas assez précise pour que nous puissions t'apporter un quelconque bout de code qui puisse répondre à tes attentes.

  4. #4
    Membre à l'essai
    Citation Envoyé par ericlm128 Voir le message
    Les 16 dossiers se trouvent t'ils dans un même dossier racine ou sont il éparpillés ? Comment définis tu ta recherche ? Y à t'il un pattern de correspondance possible ? Comment pouvons nous deviné ce qui est à exclure ?
    Comme je l'ai indiqué,les 16 fichiers se trouvent dans 16 sous-dossiers d'un répertoire racine.( 1 fichier par sous-répertoire)=> j'arrive à les lister et les envoyer dans une variable.Les caractères communs à ces 16 fichiers sont ${Datemoins1}.
    J'arrive à exclure le fichier dont je n'ai pas besoin : -Exclude "Yapa__$Datemoins1.csv".

    D'où ma commande :
    Code PowerShell :Sélectionner tout -Visualiser dans une fenêtre à part
    $Files = Get-ChildItem "C:\Temp\" *$Datemoins1.csv -Recurse -Exclude "Yapa__$Datemoins1.csv"


    On copie les 16 dans un dossier en les préfixant de quoi ? je voudrais qu'ils soient préfixés de "WYNP_"
    Y a t'il un risque de doublon ? Non aucun risque car les fichiers sont intégrés tous les jours.
    Doit on écraser si cela se produit ? celà ne peut pas arriver car jamais de doublon.
    Ou est définit ce dossier unique ? pour mon exemple de chemin,ca serait : C:\Temp\ALL


    Ou sont ces dossiers d'archivages respectifs ? Dans une arbo du type:

    C:\Temp\tata\archive
    C:\Temp\pepe\archive
    C:\Temp\subDir\archive

    Comment définit tu le lien entre la source et la destination ? qu'entends tu par lien ?
    Y a t'il une table de correspondance ? qu'entends tu par table de correspondance ?

###raw>template_hook.ano_emploi###