Gérer les fichiers et dossiers avec Powershell.

Voici une série de commande permettant de gérer les fichiers et dossiers avec Powershell.

Afficher le chemin du dossier courant:

Get-Location

Afficher le contenu d’un dossier:

Get-ChildItem
Get-ChildItem "c:\temp"

Se déplacer dans les dossiers:

Set-Location "c:\temp"

Créer un fichier:

New-Item -Name "fichier.txt" -ItemType file -Value "Test"

Créer un dossier:

New-Item -Name "dossier" -ItemType directory

Supprimer un fichier ou un dossier:

Remove-Item "c:\temp\*.txt"

Déplacer des fichiers:

Move-Item -Path *.txt -Destination "c:\temp\"

Déplacer un dossier:

Move-Item -Path .\dossier -Destination .\temp\dossier
Move-Item -Path .\temp\dossier -Destination .\temp\dossier2"

Renommer un fichier ou un dossier:

Rename-Item -Path fichier.txt -NewName fichier2.txt
Rename-Item -Path dossier -NewName dossier2

Copier un fichier ou un dossier:

Copy-Item -Path .\fichier.txt -Destination c:\temp
Copy-Item -Path dossier -Destination c:\temp -Recurse

19 réflexions sur « Gérer les fichiers et dossiers avec Powershell. »

  1. Ping : Gestion des fichiers en Powershell - JGoupil

  2. Ping : Top 3 des articles de My-PowerShell | My-PowerShell

  3. Jonas FERNANDEZ

    Par certains aspects, les commandes sont comparables à certains commandes équivalentes sous Unix.
    Par exemple la commande find qui permet de chercher un fichier dans une arborescence.
    Si tu cherches le fichier monfichier.tex et que tu ne sais pas exactement où le trouver.

    find /home -type f -name monfichier.tex -ls
    On retrouve le « ItemType » directory ou file de certaines commandes ou le Item-Name…

    Bref, quand on fait de la programmation shell Unix, on est pas trop perdu.
    Mais je préfère encore de loin l’original.

    Quand on a un système qu’on peut étudier, bidouiller, démonter et remonter complètement et qu’on peut comprendre comment il fonctionne précisément, il ne faut pas s’en priver.
    (Je pense aux systèmes unix tels que GNU, *BSD et au noyau Linux en particulier)
    Alors Win reste une boite bleue étanche et totalement impénétrable.

    Répondre
  4. Orane

    @FERNANDEZ
    Les commandes UNIX ont été pensées pour être courtes et efficaces – rien à voir avec les noms à rallonge de powershell. La force de Linux reste d’abord sa simplicité et son mode KISS.

    Répondre
  5. mathias

    Bonjour, si je peux me permettre, je dirai que powershell est plus qu’une fenêtre de commande type DOS/unix/linux. Powershell permet la manipulation d’éléments extérieurs aux système, comme par exemple un Active Directory, des services. Les commandes PS retournent des objets, manipulables en tant que tel, offrant des possibilités que le système des pipes n’offre pas forcément.
    Ou je me trompe?

    Répondre
  6. Kilou

    Bonjours votre article es parfait !

    Pouvez vous m’aider ? car il se trouve que je voudrais déplacer des fichier ansi que des sous dossier es les envoyer a distance c’est possible ?
    Comment je peux faire ?
    Merci !

    Répondre
  7. Yannick

    Bonjour,
    Tout nouveau sur Powershell, j’aimerai pouvoir
    lire une chaine de caractère de la 1er ligne d’un fichier. Celui est toujours au même endroit (par exemple col 93 sur 12 caractère), récupéré cette valeur (dans une variable je suppose) et ensuite pouvoir renommer ce fichier avec cette valeur.
    Merci de votre aide

    Répondre
  8. Philippe

    @Yannick
    Bonjour
    Pour lire un fichier utilise get-content
    Pour ne récupérer que la première ligne , ajoute l’option -totalcount 1
    $ma_chaine_a_analyser=[String]get-content -totalcount 1 monfichier
    Tu obtiens donc une string , sur laquelle tu peux appliquer une fonction (ou méthode pour ceux qui aiment le langage objet) . Ici, tu veux une sous chaine, de 12 , à partir du 93ème
    Donc
    $resultat= »$ma_chaine_a_analyser ».SubString(93,12)
    Bon courage

    Répondre
  9. Philippe

    Pour connaitre tout ce que tu peux faire sur une variable powershell, il te suffit de le piper avec la fonctiton get-member. Et en plus, en entête ça te donne le type de ton objet. C’est comme en C, tu es parfois obliger de forcer le changement de type (« caster »)
    Tu peux essayer ça
    $a=1
    $a| get-member
    te donne ce que tu peux faire sur un entier (int32)
    Mais si tu veux traiter $a comme une chaine de caractères,
    « $a »|get-member

    Répondre
  10. Pichao

    Bonjour,

    Pourriez-vous m’aider svp ?
    Tout nouveau sur powershell j’aurais besoin de :
    – extraire une chaîne de numéro d’un fichier txt (copié depuis un xls) colonne 1
    – extraire les références qui correspondent à chacun des numéros et qui sont en colonne colonne 2
    – renommer tous les fichiers du même dossier du nom de la colonne 2 grâce à l’association de la chaîne de numéro, mes fichiers à renommer ayant pour début de nom une même chaîne de numéros.

    Pour être peut-être plus clair voici un exemple :
    J’ai un dossier où j’ai 3 dossiers nommés :
    « 1-fichier1
    2-fichier2
    3-fichier3

    + 1 fichier txt (à l’origine en xls) où j’ai :
    colonne 1 et colonne 2
    1- 2017/0001
    2- 2017/0002
    3- 2017/0003

    Mon but est de renommer tous mes fichiers par rapport au nom de la colonne 2 ce qui donnerait :
    1-fichier1 serait renommé 1- 2017/0001 grâce à la jointure « 1-« .

    Pouvez-vous m’aider ?

    Un grand merci.

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *