Question Renommer et déplacer des fichiers pdf

Plus d'informations
il y a 9 ans 10 mois #17523 par Gilles
Bonjour,
je cherche à renommer et déplacer des fichiers .pdf qui se trouvent dans des répertoires le hic c'est que je ne connais pas le nombre de fichier il varie de jour en jour.

Mon problème le déplacement renommage fonctionne avec un fichier mais pas quand j'ai plus d'un fichier.

J'ai un fichier texte avec le nom de differents bureaux il aura donc plusieurs repertoires avec le nom de la ville du bureau et dedans trois répertoires comme dans le fichier joint.

La pièce jointe renommer.ps1 est absente ou indisponible



Message édité par: Palpelune34, à: 21/05/14 17:40<br><br>Message édité par: Palpelune34, à: 21/05/14 17:41
Pièces jointes :

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

Plus d'informations
il y a 9 ans 10 mois #17524 par Laurent Dardenne
[edit]
Désolé, inversion de post :silly:<br><br>Message édité par: Laurent Dardenne, à: 21/05/14 18:31

Tutoriels PowerShell

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

Plus d'informations
il y a 9 ans 10 mois #17526 par Laurent Dardenne
Palpelune34 écrit:

Mon problème le déplacement renommage fonctionne avec un fichier mais pas quand j'ai plus d'un fichier.

C'est à dire ? Dans ce cas un seul est copié ou aucun ?
Tu n'as pas choisi la facilité avec ta construction :pinch:

Dans ton script je pense que la construction suivante est erronée :
[code:1]
Move-Item -Path $sourcedo -Destination $destinationdo;[/code:1]
Une fois tous les fichiers copiés dans le même fichier, le répertoire source est vide de fichier .pdf

Essaie autour de ceci :
[code:1]$i=0;dir c:\temp\*.pdf|move-item -des {$script:i++; \&quot;c:\temp\dest\$($_.name)$script:i\&quot;} -whatif[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 9 ans 10 mois #17528 par Gilles
Bonjour, Laurent
j'avoue j'ai du mal à comprendre le code. on pourrait faire plus simple pour moi dans un premier temps.

J'ai un répertoire test par exemple avec à l'intérieur un nombre de fichiers pdf indéfini.

Je cherche à renommer l'ensemble des fichiers que je trouve à l'intérieur de ce répertoire test et à les copier dans un autre répertoire test1.

Comment je pourrais faire ?
Logiquement je dois juste utiliser la commande move-item.

Merci d'avance<br><br>Message édité par: Palpelune34, à: 22/05/14 11:54

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

Plus d'informations
il y a 9 ans 10 mois #17530 par Laurent Dardenne
Palpelune34 écrit:

on pourrait faire plus simple pour moi dans un premier temps.

M'est avis que tu dois déjà comprendre pourquoi ton code ne fonctionne pas. Ici il n'y a rien de complexe juste des principes de base de Powershell qui te sont, à priori, inconnu.
Je peux décomposer le code si tu veux, mais moins j'utilise de calcul d'index de tableaux, mieux je me porte.

Palpelune34 écrit:

J'ai un répertoire test par exemple avec à l'intérieur un nombre de fichiers pdf indéfini.

[code:1]
$path='Monpath'
#substitution de variable
dir \&quot;$path\*.pdf\&quot;
[/code:1]
Palpelune34 écrit:

Je cherche à renommer l'ensemble des fichiers que je trouve à l'intérieur de ce répertoire test et à les copier dans un autre répertoire test1.

| : Usage du pipeline entre le cmdlet Get-ChildItem et Move-Item
[code:1]
dir \&quot;$path\*.pdf\&quot;| Move-Item -destination {$script:i++; \&quot;c:\temp\dest\$($_.name)$script:i\&quot;} -whatif
[/code:1]
-destination : nom DU fichier à renommer et à déplacer, UN SEUL.
{$script:i++; \&quot;PathDestination\$($_.Name)$script:i\&quot;} : Code de construction du nouveau nom de fichier. Ce code est exécuté AVANT d'être lié au paramétre destination.
-whatif : simule le move-item, permet ici de vérifier le code de construction du nouveau nom de fichier
Palpelune34 écrit:

Comment je pourrais faire ?
Logiquement je dois juste utiliser la commande move-item.

De mon côté, avec le code proposé, je répond à la question comment utiliser Move-Item dans TON cas.

Tutoriels PowerShell

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

Plus d'informations
il y a 9 ans 10 mois #17541 par Gilles
Merci Laurent je viens de comprendre en effet le pipeline je ne maitrisais pas. Le script marche super bien :blush:

Du coup dans ton expression

{$script:i++; \&quot;c:\temp\dest\$($_.name)$script:i\&quot;}

le $_name est le résultat du pipe

mais le $script: est une sorte de fonction ?

Merci encore et bon week end

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

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