Question Aide sur un script d'extraction de fichiers

Plus d'informations
il y a 11 mois 3 semaines #33602 par Elimazra
Bonjour,

Alors voila j'aurais besoin d'un peu d'aide concernant mon script que voila:
# Spécifiez le chemin du dossier racine à partir duquel vous souhaitez commencer la recherche
$cheminRacine = Read-Host "Glissez le dossier à traiter"

# Spécifiez le chemin de destination où vous souhaitez copier les fichiers
$cheminDestination = Read-Host "Glissez le dossier de sortie"

# Obtenez le nom du dossier source
$nomDossierSource = (Get-Item $cheminRacine).Name
Write-Host "$nomDossierSource"

# Construisez le chemin de destination en ajoutant le suffixe du dossier source
$cheminDestinationAvecSuffixe = Join-Path -Path $cheminDestination -ChildPath "$nomDossierSource"
Write-Host "$cheminDestinationAvecSuffixe"

# Créez le dossier de destination s'il n'existe pas
if (-not (Test-Path -Path $cheminDestinationAvecSuffixe)) {
    New-Item -Path $cheminDestinationAvecSuffixe -ItemType Directory -Force
}

# Récupérez la liste de tous les fichiers récursivement à partir du chemin racine
$files = Get-ChildItem -Path $cheminRacine -File -Recurse
Write-Host "$files"

Start-Sleep -seconds 15

# Parcourez la liste des fichiers
foreach ($file in $files) {
    # Obtenez le chemin complet du fichier
    $cheminCompletFichier = $file.FullName
    Write-Host "$cheminCompletFichier"
    Start-Sleep -seconds 15

    # Obtenez le nom du dossier parent N+3
    $nomDossierParent = (Get-Item (Split-Path -Path $cheminCompletFichier)).Name
    Write-Host "$nomDossierParent"
    Start-Sleep -seconds 15
    for ($i = 0; $i -lt 3; $i++) {
        $nomDossierParent = (Get-Item (Split-Path -Path $nomDossierParent)).Name
        Write-Host "$nomDossierParent"
    }


    # Créez le nouveau nom de fichier en ajoutant le nom du dossier parent N+3 comme suffixe
    $nouveauNomFichier = $file.BaseName + "_$nomDossierParent" + $file.Extension
    Write-Host "$nouveauNomFichier"
    Start-Sleep -seconds 15
    
    # Construisez le chemin de destination en ajoutant le nom du fichier modifié
    $cheminDestinationComplet = Join-Path -Path $cheminDestinationAvecSuffixe -ChildPath $nouveauNomFichier
    Write-Host "$cheminDestinationComplet"
    Start-Sleep -seconds 15
    
    # Copiez le fichier dans le dossier de destination
    Copy-Item -Path $cheminCompletFichier -Destination $cheminDestinationComplet -Force
}

mon soucis est surtout a ce niveau
    # Obtenez le nom du dossier parent N+3
    $nomDossierParent = (Get-Item (Split-Path -Path $cheminCompletFichier)).Name
    Write-Host "$nomDossierParent"
    Start-Sleep -seconds 15
    for ($i = 0; $i -lt 3; $i++) {
        $nomDossierParent = (Get-Item (Split-Path -Path $nomDossierParent)).Name
        Write-Host "$nomDossierParent"
    }

mon chemin de dossier est le suivant : C:\Users\UTILISATEUR\Desktop\dossier\XBOX\files\image

Alors mon soucis en sortie pour le dossier parent N+3 je ressort en permanence avec image et pas XBOX

Avez vous une idée ?
j'ajoute mon erreur en PJ si besoin

cordialement
Elimazra
 
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

  • ericlm128
  • Visiteur
  • Visiteur
il y a 11 mois 3 semaines - il y a 11 mois 3 semaines #33603 par ericlm128
Réponse de ericlm128 sur le sujet Aide sur un script d'extraction de fichiers
Salut,
$file = Get-Item "C:\Users\UTILISATEUR\Desktop\dossier\XBOX\files\image\img00.jpg"
$nomDossierParentParent = $file.Directory.Parent.Parent.Name
Dernière édition: il y a 11 mois 3 semaines par ericlm128.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.107 secondes
Propulsé par Kunena