Powershell est un Invite de commandes, mais aussi un langage de programmation qui permet d’automatiser des tâches, de trier des quantités ahurissantes de données à la volée, mais aussi de s’amuser ! Dans ce dossier nous vous montrons quatre exemples de scripts amusants et plutôt utiles, à minima pour apprendre à dompter le nouvel Invite de commandes.

Powershell remplace désormais l’Invite de commandes classique (cmd) par défaut depuis la mise à jour de Windows 10 Creators Update. Ce programme permet de faire tout ce que pouvait faire Cmd, mais autorise aussi bien les développeurs chevronnés ou les codeurs en herbe à créer des petits scripts par curiosité ou pour réellement coder et simplifier votre utilisation de l’ordinateur. Nous avons essayé à travers ces quelques scripts de vous montrer des exemples aussi instructifs qu’amusants.

Powershell : la boucle des étoiles

Ce petit script permet de s’initier au fonctionnement des boucles. Copiez-le et lancez-le dans une fenêtre de Powershell pour voir directement le résultat :

$i="*"
Do {
$i="$i*"
$i
}
While ($true)

Vous comprenez mieux pourquoi nous avons appelé cette boucle la « boucle des étoiles ». Pour interrompre le programme tapez sur les touches Ctrl + C de votre clavier. Ce petit code est assez amusant, mais peut faire des choses plus utiles. Vous pouvez par exemple remplacer l’étoile par ce que bon vous semble. Mais aussi d’autres éléments, voire des nombres :

$i=1
Do {
$i
$i++
}
While ($i -le 10)

La boucle va alors afficher le nombre contenu dans $1 et ajouter 1 tant que la valeur de $i est inférieure à 10 (d’où le $i -le 10 à la fin, -le signifiant lesser ou inférieure à en anglais). Il est aussi possible de transformer cela en compte à rebours en remplaçant le ++ à côté du $i qui vous l’aurez compris est une variable, par un --. Il faut aussi changer la valeur de départ à 10, et mettre 0 à la fin si vous voulez avoir un compte à rebours façon décollage de fusée.

Et si vous voulez que le rendu de chaque itération soit moins rapide, par exemple que l’affichage de chaque nombre soit séparé d’une seconde, vous pouvez alors ajouter une commande pour mettre le programme en pause pendant un nombre défini de millisecondes à chaque boucle :

$i=10
Do {
$i
$i--
Start-Sleep -m 1000
}
While ($i -ge 0)

Enfin, si vous voulez ajouter un bip à chaque exécution du petit bout de code de la boucle, ajoutez [console]::beep(440,100) où 440 est la fréquence en Hz du son (c’est un La) et 100 est la durée de lecture. Ce qui donne le code suivant :

$i=10
Do {
$i
$i--
[console]::beep(440,100)
Start-Sleep -m 1000
}
While ($i -ge 0)

Notez que dans le cas du compte à rebours, le While (tant que…) ne peut jouer la boucle tant que la valeur de $i est « inférieure à 0 », puisque la valeur de $i commence à 10. Il faut donc remplacer à la dernière ligne -le par -ge qui signifie greater than ou supérieur à en Français.

Faites de la musique avec Powershell

Et si on vous disait que vous pouvez faire de la musique avec Powershell ? Un des exemple les plus ludiques pour s’initier au langage de programmation de Powershell, c’est de programmer des morceaux de musique. Copiez directement le code des chansons dans une fenêtre Powershell et tapez Entrée pour les exécuter.

« La Marche Impériale »

[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(698,350)
[console]::beep(523,150)
[console]::beep(415,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)

« Mission Impossible »

[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(932,150)
Start-Sleep -m 150
[console]::beep(1047,150)
Start-Sleep -m 150
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(699,150)
Start-Sleep -m 150
[console]::beep(740,150)
Start-Sleep -m 150
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(932,150)
Start-Sleep -m 150
[console]::beep(1047,150)
Start-Sleep -m 150
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(699,150)
Start-Sleep -m 150
[console]::beep(740,150)
Start-Sleep -m 150
[console]::beep(932,150)
[console]::beep(784,150)
[console]::beep(587,1200)
Start-Sleep -m 75
[console]::beep(932,150)
[console]::beep(784,150)
[console]::beep(554,1200)
Start-Sleep -m 75
[console]::beep(932,150)
[console]::beep(784,150)
[console]::beep(523,1200)
Start-Sleep -m 150
[console]::beep(466,150)
[console]::beep(523,150)

Composez votre propre création

Comme vous pouvez le voir en décortiquant la commande on a [console]::beep avec deux chiffres entre parenthèse. Le chiffre de gauche désigne la fréquence du son (par exemple 440 Hz pour un La), et le chiffre de droite, la durée pendant laquelle le son doit être joué (en millisecondes). Dans Mission Impossible on voit également que les sons sont entrecoupés de la commande Start-Sleep -m 150. Celle ci signifie « ne fais plus rien pendant X ms » : parfait pour introduire des silences ! C’est à vous – n’hésitez pas à partager vos créations dans les commentaires !

Faites parler Powershell

Il est aussi possible de transformer du texte en synthèse vocale directement dans Powershell. Pour cela, il faut d’abord charger le module de synthèse vocale en lançant cette commande, puis créer un nouvel objet $speak qui permettra de simplifier son utilisation. Tout cela est somme toute assez simple, copiez les deux lignes suivantes et exécutez-les dans Powershell :

Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer

Vous pouvez alors faire parler la synthèse vocale de Powershell :

$speak.Speak("Je donne ma langue au chat")

Il est même possible de transformer à la volée vos phrases en un fichier WAV. Il faut pour cela en quelque sorte ouvrir/commencer l’enregistrement de votre fichier sur votre disque dur en modifiant la commande suivante, puis en l’exécutant. « Fermez » ensuite le fichier une fois que vous aurez fini avec une autre commande pour pouvoir ensuite le lire dans le programme de votre choix :

$speak.SetOutputToWaveFile("C:\users\LE\CHEMIN\QUE\VOUS\AUREZ\CHOISI\test.wav")

Lancez ensuite quelques $speak.Speak() contenant des phrases que vous souhaitez transformer en synthèse vocale, puis exécutez cette commande pour fermer le fichier :

$speak.Dispose()

Si la voix ne vous plaît pas, vous pouvez consulter la liste des voix installées en exécutant la commande :

$speak.GetInstalledVoices().VoiceInfo

Copiez le nom de la voix et collez-le dans cette commande pour la changer :

$speak.SelectVoice('LA VOIX QUE VOUS AVEZ CHOISIE')

Rangez votre bureau Windows 10 avec un script

Ce petit script qui vient de Reddit (merci à u/Zazierx !) est si pratique que nous ne résistons pas à le partager avec vous. Il permet à la fois de s’initier aux opérateurs conditionnels (le code est relativement clair et simple à lire) et à ranger le bureau de Windows 10 dans des dossiers par types de fichier. Copiez et collez le code suivant dans une fenêtre de Powershell puis exécutez-le :

$pathToUse = "C:\Utilisateurs\$env:username\Bureau"
$video = @(
'3g2','3gp','3gpp','asf','avi','divx','f4v',
'flv','h264','ifo','m2ts','m4v','mkv','mod','mov',
'mp4','mpeg','mpg','mswmm','mts','mxf','ogv','rm',
'srt','swf','ts','vep','vob','webm','wlmp','wmv'
)
$spreadsheets = @(
'csv','ods','xls','xlsx'
)
$images = @(
'arw','bmp','cr2','crw','dcm','dds','djvu','djvu',
'dmg','dng','fpx','gif','ico','ithmb','jp2','jpeg',
'jpg','nef','nrw','orf','pcd','pict','png','psd',
'sfw','tga','tif','tiff','webp','xcf'
)
$presentations = @(
'key','odp','pps','ppsx''ppt','pptm','pptx'
)
$docs = @(
'chm','doc','docm','docx','dot','dotx','eml','eps',
'hwp','log','m3u','odt','pages','pdf','pub','rtf',
'sxw','txt','wpd',' wps','xml','xps'
)
$cadFiles = @(
'dwg','dxf'
)
$misc = @(
'bin','cda','dat','dll','exe','isc',
'img','inf','ipa','kmz','lnk','pes',
'ps','rem','torrent','ttf','vcf'
)
$ebooks = @(
'azw','azw3','epub','fb2''lit','lrf','mbp','mobi',
'opf','prc'
)
$web = @(
'css','htm','html','js','json','php'
)
$arcs = @(
'7z','apk','bz2','cbr','gz','gzip','jar','rar',
'tar','tgz','zip','war'
)
$scripts = @(
'bat','cmd','vb','vbs','vbe','js',
'jse','ws','wsf','wsc','wsh','ps1',
'ps1xml','ps2','ps2xml','psc1','psc2','sql'
)
$files = Get-ChildItem -Path $pathToUse
Foreach ($x in $files){
if($docs.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Documents" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Documents"
}
elseif($spreadsheets.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Spreadsheets" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Spreadsheets"
}
elseif($images.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Images" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Images"
}
elseif($presentations.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Presentations" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Presentations"
}
elseif($video.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Videos" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Videos"
}
elseif($cadFiles.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "CAD Files" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"CAD Files"
}
elseif($misc.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Misc" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Misc"
}
elseif($ebooks.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "E-Books" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"E-Books"
}
elseif($web.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Web" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Web"
}
elseif($arcs.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Archives" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Archives"
}
elseif($scripts.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Scripts" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Scripts"
}
elseif($x.Directory){
New-Item -ItemType Directory -Path $pathToUse -Name "Other - misc" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Other - misc"
}
else{
Write-Host $x
}
}

Avec quelques petites modifications, vous pourrez ranger n’importe quel dossier sans efforts. Connaissez-vous d’autres scripts Powershell amusants ? Partagez-les dans les commentaires de cet article !



Réagissez à cet article !
Abonnez-vous gratuitement à la newsletter
Chaque semaine, le meilleur de Phonandroid dans votre boite mail !
Demandez nos derniers tutos !
Comment supprimer un compte Stadia

Stadia, le service de cloud gaming de Google, est prometteur. Seulement, avec un lancement chaotique, un catalogue limité et des fonctionnalités qui tardent à arriver, certains joueurs ont rapidement été déçus par l’offre proposée. Se résignant même à supprimer leur…

Google Docs : les meilleures astuces pour bien l’utiliser

Google Docs est un service qui a le mérite d’être accessible à tous et d’être extrêmement simple à prendre en main. Mais même s’il paraît basique, il offre tout un tas de fonctionnalités bien pratiques pour la productivité. Voici justement…

Windows 10 : comment désactiver ou supprimer OneDrive

Depuis le lancement de Windows 10, Microsoft a fait le choix d’installer OneDrive sur l’ensemble de ses versions du système d’exploitation. L’application n’est pas nécessairement activée de base, mais elle est présente par défaut dans l’OS, quoi qu’il arrive. Mais…

Comment supprimer ou désactiver son compte Instagram

Instagram a beau être le réseau social le plus tendance du moment, tout le monde ne l’aime pas pour autant. Certains lui reprochent son manque d’authenticité et le fuient peu à peu. Si vous voulez en faire autant, voici comment supprimer ou désactiver votre compte Instagram.

Comment supprimer votre compte Facebook en 2020

Le réseau social Facebook est devenu particulièrement imposant sur la toile comme dans nos vies. Si vous souhaitez couper les ponts avec le réseau social, voici quatre étapes pour supprimer définitivement votre compte.

Comment réinitialiser sa Nintendo Switch ou sa Switch Lite ?

Vous souhaitez restaurer votre Switch telle qu’elle était au premier jour de son achat ? Pour la revendre, la prêter ou simplement pour lui donner une seconde jeunesse ? Voici comment vous y prendre pour remettre à zéro votre console…

Windows 10 : comment retrouver le code WiFi sans effort

Windows 10 permet de retrouver très facilement le code WiFi, sans devoir aller à chaque fois chercher ce code sur l’étiquette collée sous votre box, ou sur le post-it sur le frigo dans la cuisine. Windows 10 connait en effet…

Free : comment résilier son forfait mobile ou internet

Résilier son forfait mobile ou son abonnement internet fixe Free n’est pas une sinécure. L’opérateur fait tout pour rendre la procédure compliquée et demande parfois des frais de résiliation à payer. Le client est volontairement laissé dans le brouillard, mais…

Smartphone Android volé ou perdu : comment réagir

Votre smartphone Android a été perdu ou volé ? On a l’impression que tout son monde s’effondre dans cette situation et on ne sait pas forcément comment réagir. Nous vous décrivons ici les étapes à suivre si vous êtes confronté…

Comment récupérer vos données et photos supprimées par erreur sur Android

Qui n’a jamais connu ça ? Un geste qui glisse, le mouvement de trop et hop, les photos de vacances avec Grand-Mère (ou des photos bien plus inavouables), le titre inédit de Myley Cyrus, directement supprimés sans autre forme de procès. Vous êtes inconsolable devant la perte immense de ces fichiers précieux. Séchez vos larmes, une solution existe.

Comment télécharger l’ISO de Windows 10 gratuitement

Windows 10 fait des siennes ? Téléchargez l’image disque d’installation (.ISO) de Windows 10 gratuitement pour pouvoir facilement le graver sur un DVD ou créer une clé USB à partir de laquelle l’installation pourra se lancer avec le programme de…

Windows 10 : comment désactiver la webcam

Vous souhaitez désactiver la webcam sur Windows 10 ? Et si on vous disait que vous pouvez faire ça en quelques clics, sans recourir au scotch, ou autre dispositif physique ? Dans ce tutoriel rapide nous allons vous montrer comment…