CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Script Batch vers Powershell

alexdu67000
alexdu67000
Niveau 1
15 juillet 2019 à 10:52:02

Bonjour,

Suite à de nombreuses recherches, je ne sais pas comment convertir ce script batch (script de nettoyage) en script powershell.

Merci d'avance pour l'aide que vous pourrez m'apporter.

@echo off
rem nettoyage rep users

PUSHD C:\Users\Public\Documents\
DEL /Q "*.*"
FOR /F "tokens=*" %%a in ('DIR /AD /B') do RD /S /Q "%%a"

PUSHD C:\Users\Public\Pictures\
DEL /Q "*.*"
FOR /F "tokens=*" %%a in ('DIR /AD /B') do RD /S /Q "%%a"

rem nettoyage temp
del /s /q %temp%\*.*

Marienblurp
Marienblurp
Niveau 6
16 juillet 2019 à 21:33:17

Salut,

Si tu souhaites supprimer l'intégralité du contenu d'un répertoire via powershell tu peux utiliser ça :

$path = "chemin de ton dossier"
Set-Location $path
Get-ChildItem *.* -Recurse | Remove-Item

Si tu veux exclure certains types de fichiers ou de dossier tu peux utiliser -Exclude "cequetuveux" sur ton get-childitem.

Je t'invite à consulter le technet de la cmdlet ici pour en savoir plus et affiner ta commande : https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-6

Marienblurp
Marienblurp
Niveau 6
16 juillet 2019 à 21:35:33

Je viens de te relire et de voir que tu incluais les fichiers cachés.

Du coup tu peux utiliser -force pour inclure l'intégralité des fichiers :
Get-ChildItem *.* -Recurse -Force | Remove-Item

alexdu67000
alexdu67000
Niveau 1
17 juillet 2019 à 11:44:37

Merci beaucoup ! Ce pendant je n'arrive pas à supprimer les dossier; comment dois-je faire ?

Marienblurp
Marienblurp
Niveau 6
17 juillet 2019 à 12:24:34

Utilise ça :

$path = "chemin de ton dossier"
Set-Location $path
Get-ChildItem * -Recurse -Force | Remove-Item -Recurse

Ma première commande n'incluait que le Items sous la forme *.* (donc les fichiers), la il va plus se poser de question et tout shooter.

Message édité le 17 juillet 2019 à 12:27:27 par Marienblurp
alexdu67000
alexdu67000
Niveau 1
19 juillet 2019 à 11:50:47

Merci pour l'aide ! Je met à disposition mon script :

  1. Poste élève

Set-Location "C:\Users\posteeleve\"
Get-ChildItem -Recurse -Force -Include "*.*" -Exclude "*.lnk" | Remove-Item

$Dossier = Get-ChildItem -Name -Exclude "*.*"
$i = 0

for ($i ; $i -lt $Dossier.count ; $i++){
$Emplacement = "C:\Users\posteeleve\" + $Dossier[$i]
Set-Location $Emplacement
Get-ChildItem -Recurse -Force -Exclude "*.lnk" | Remove-Item
}

  1. Public

Set-Location "C:\Users\Public\"
Get-ChildItem -Recurse -Force -Include "*.*" -Exclude "*.lnk" | Remove-Item

$Dossier = Get-ChildItem -Name -Exclude "*.*"
$i = 0

for ($i ; $i -lt $Dossier.count ; $i++){
$Emplacement = "C:\Users\Public\" + $Dossier[$i]
Set-Location $Emplacement
Get-ChildItem -Recurse -Force -Exclude "*.lnk" | Remove-Item
}

Marienblurp
Marienblurp
Niveau 6
19 juillet 2019 à 21:54:17

Joli petit script, compteurs, exclusion des .lnk, c'est propre !

Ravi d'avoir pu t'aider !

Si tu as envie d'aller plus loin (et être un gros flemmard comme moi) tu peux générer un envoi de mail avec le contenu de tes variables de sorties en utilisant :

Send-MailMessage -From 'Cequetuveux@tondomaine' -To 'tonadressemail', -Subject 'Ton objet de mail' -Body "Le corps de ton mail" -SmtpServer 'Ton Server SMTP'

Pour le corps de ton mail je t'invite à le travailler en amont dans une variable, sachant que tu peux inclure du html dans powershell.

Il ne te manquera plus qu'a créer un tâche planifiée sur ton poste/server/ordonnanceur avec ton script et c'est parti pour ne plus rien faire ;)

Amuse toi bien, n'oublie jamais que c'est comme ça que l'on progresse, reste curieux !

Message édité le 19 juillet 2019 à 21:59:02 par Marienblurp
Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment