IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Déplacer des fichiers par rapport à une date et garder son arborescence


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Par défaut Déplacer des fichiers par rapport à une date et garder son arborescence
    Bonjour,

    J'ai un script à faire pour mon entreprise et je bloque sur comment utiliser la cmdlet Move-Item pour déplacer mes fichiers et les coller à un endroit donné et garder la même arborescence genre :
    baba/
    papa/
    fichier1
    vers :
    famille/
    baba/
    papa/
    fichier1


    voici le script que j'ai fait pour l'instant :


    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Param(
    [parameter(mandatory=$true)]
    [string] $source,
    [parameter(mandatory=$true)]
    [string] $destination)
     
     
     
    foreach($file in Get-ChildItem $source -Recurse)
    {
     
    if($file.LastWriteTime -le $(Get-Date).AddMonths(-6) )
     
       {
     
            Write-host $file.LastWriteTime "-" $file.Name "-" $file.FullName
     
            # Copy-Item $file.FullName  -destination  $dossier_de_recption
            #New-Item $directory -ItemType directory -Path $destination 
          $directory = "$desination\$source\$file"
    if (!(Test-Path $directory))
    	{
    	New-Item -ItemType directory -Path $directory | Out-null
    	}
            Move-Item $file.FullName -Destination $directory | Out-Null
     
     
        }
     
     
    else{
        echo " il n'y a aucun fichier qui correspond" 
     
        }
     
                <# if ($file.LastWriteTime -ne $(Get-Date).AddMonths(-6))
                        {
      
                        Write-host $file.LastWriteTime "-" $file.Name "-" $file.FullName
     
      
                        } 
                  #>
     
     
    }

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Par défaut
    Rebonjour,

    Alors je reviens vers vous car j'ai trouver un semblant de réponse à mon probleme tout se passe bien mais à la fin j'ai quand meme des erreurs alors que le processus ce termine bien:

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Param(
    [parameter(mandatory=$true)]
    [string] $source,
    [parameter(mandatory=$true)]
    [string] $destination)
    
    
    
    
    foreach($file in Get-ChildItem $source -Recurse)
    {
        $sub = $file.Directory
        $sep = Split-Path ($sub) -NoQualifier
    if($file.LastWriteTime -le $(Get-Date).AddMonths(-6) )
    
       {
    
            Write-host $file.LastWriteTime "-" $file.Name "-" $file.FullName
       
            # Copy-Item $file.FullName  -destination  $dossier_de_recption
            #New-Item $directory -ItemType directory -Path $destination 
          
            # New-Item -ItemType directory -Path "$destination\$directory" -Force | Out-null
            #Move-Item $file.FullName -Destination $directory
            $directory = "$destination\$sep"
            
    	if(!(Test-Path -Path "$directory" )){
            Write-Verbose "Creating log location $directory."
            #Write-Host -backgroundcolor green -ForegroundColor black "Creating log location $MonthPath."
    		Write-Verbose "MonthPat inside path test = $directory"
            New-Item -ItemType directory -Path $directory | Out-null
        }
    
    move-item $file.FullName "$directory" -Force| Out-null
    
                    <#if (!(Test-Path $directory))
    	                    {
    	                        New-Item -ItemType directory -Path $directory -Force | Out-null
                                Move-Item $directory -Destination $destination -Force
    	                    }
                        
                          Move-Item $file.FullName -Destination $directory -Force | Out-Null
            
        
        
                            #>
    
    
    
        
        }
    else {
    
            echo "Le fichier ne correspond pas à la demande"
    
        }
    
    }
    
    
    Split-Path : Impossible de lier l'argument au paramètre «Path», car il a la valeur Null.
    Au caractère C:\Users\user1\Documents\WindowsPowershell\Copie_etic_6months.ps1:15 : 23
    +     $sep = Split-Path ($sub) -NoQualifier
    +                       ~~~~~~
        + CategoryInfo          : InvalidData : (:) [Split-Path], ParameterBindingValidation 
       Exception
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.P 
       owerShell.Commands.SplitPathCommand

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Get-ChildItem te renvoi les dossiers aussi. Filtre pour n'avoir que des fichiers.

Discussions similaires

  1. Déplacer un fichier par rapport à la date
    Par hihara dans le forum VBScript
    Réponses: 1
    Dernier message: 28/05/2012, 18h47
  2. Réponses: 2
    Dernier message: 21/03/2007, 16h06
  3. Réponses: 7
    Dernier message: 31/07/2006, 13h50
  4. Réponses: 7
    Dernier message: 05/04/2006, 11h22
  5. [MySQL] Select count par rapport à une date
    Par ruty dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 02/04/2006, 22h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo