Add exo powershell

This commit is contained in:
flyingscorpio@clevo 2022-07-06 16:34:20 +02:00
parent dbbcb22c8f
commit dbb30739d7
4 changed files with 377 additions and 0 deletions

16
scripting/Makefile Normal file
View file

@ -0,0 +1,16 @@
filename=$(shell basename $(shell pwd))
timestamp=$(shell date +%Y-%m-%d_%H:%M)
all: exo_pwsh
exo_pwsh: exo_pwsh.tex
@latexmk -pdf exo_pwsh.tex
@if ! cmp --silent build/exo_pwsh.pdf exo_pwsh_*.pdf; then \
touch exo_pwsh_tmp.pdf; \
rm exo_pwsh*.pdf; \
cp build/exo_pwsh.pdf exo_pwsh_${timestamp}.pdf; \
echo "Updated"; \
fi
clean:
@rm -rf build 2>/dev/null

95
scripting/exo.ps1 Normal file
View file

@ -0,0 +1,95 @@
# Exercices PowerShell
# 1. Afficher l'aide sur la commande Get-Alias
Get-Help Get-Alias
# 2. Afficher laide avec les exemples sur la commande Get-Alias
Get-Help -Examples Get-Alias
# 3. Afficher tous les alias dont le nom commence par la lettre g
Get-Alias g*
# 4. Afficher la commande qui correspond à lalias dont le nom est sl
Get-Alias sl
# 5. Afficher tous les alias dont la définition est Get-ChildItem
Get-Alias -Definition Get-ChildItem
# 6. Afficher les informations du volume nommé C (un volume dans votre machine)
Get-Item C:\
# 7. Afficher les méthodes et les propriétés des objets retournés par la commande Get-Location
Get-Location | Get-Member
# 8. Afficher les méthodes et les propriétés des objets retournés par la commande Get-PSDrive
Get-PSDrive | Get-Member
# 9. Afficher le chemin du dossier courant
Get-Location
# 10. Se déplacer à la racine de la partition C: (chemin c:\) (ou nimporte quelle partition dans votre machine)
Set-Location C:\
# 11. A cet emplacement, créer un dossier nommé testPowerShell
New-Item -Path C:\ -Name testPowerShell -ItemType Directory
# 12. Se déplacer dans le dossier c:\testPowerShell
Set-Location C:\testPowerShell
# 13. Créer un dossier nommé testdossier
New-Item testdossier -ItemType Directory
# 14. Créer un fichier nommé test1.txt, contenant la phrase "Tp PowerShell 1"
Write-Output "Tp PowerShell 1" | Out-File test1.txt
# 15. Afficher la liste des dossiers et fichiers
Get-ChildItem
# 16. Copier le fichier test1.txt sous le nom test2.txt, Renommer le fichier test1.txt avec le nom essai1.txt, Copier le fichier essai1.txt dans le dossier testdossier\essai1.txt
Copy-Item -Path test1.txt -Destination test2.txt
Rename-Item -Path test1.txt -NewName essai1.txt
Copy-Item -Path essai1.txt -Destination testdossier\test1.txt
# 17. Afficher la liste des fichiers du dossier et des sous-dossiers de testPowerShell
Get-ChildItem -Recurse testPowerShell
# 18. Copier le dossier testdossier (avec ses fichiers) dans un nouveau dossier test2dossier, Déplacer le fichier test2.txt dans le dossier testdossier, Supprimer le dossier test2dossier (avec ses fichiers)
Copy-Item -Recurse testdossier -Destination test2dossier
Move-Item -Path test2.txt -Destination testdossier
Remove-Item -Recurse test2dossier
# 19. Tester lexistence du dossier c:\windows
Test-Path C:\Windows
# 20. Afficher le contenu du dossier c:\windows
Get-ChildItem C:\Windows
# 21. Afficher la liste des fichiers .exe du dossier c:\windows
Get-ChildItem -Path C:\Windows -Name *.exe
# 22. Affecter à la variable $loc, le résultat de la commande Get-Location
$loc = Get-Location
# 23. Afficher les propriétés et les méthodes de la variable $loc
$loc | Get-Member
# 24. Afficher le chemin du dossier courant contenu dans cette variable.
Write-Output $loc.Path
# 25. Afficher les informations sur le disque contenu par cette variable.
Write-Output $loc.Drive
# 26. Afficher les informations sur le Provider contenu par cette variable
Write-Output $loc.Provider
# 27. Affecter à la variable $lect, le résultat de la commande Get-PSDrive Name C
$lect = Get-PSDrive -Name C
# 28. Afficher les propriétés et les méthodes de la variable $lect
$lect | Get-Member
# 29. A partir de la variable $lect, afficher la description du lecteur C
Write-Output $lect.Description
# 30. Afficher la taille en octet du volume utilisé
Write-Output $lect.Used

172
scripting/exo_pwsh.tex Normal file
View file

@ -0,0 +1,172 @@
\documentclass[a4paper,french,12pt]{article}
\title{Scripting --- Exercices PowerShell}
\author{Tunui Franken}
\date{Dernière compilation~: \today{} à \currenttime}
\usepackage{styles}
\usepackage{enumitem}
\begin{document}
\maketitle
\begin{enumerate}
\item Afficher l'aide sur la commande Get-Alias
\begin{console}[gobble=12]
Get-Help Get-Alias
\end{console}
\item Afficher laide avec les exemples sur la commande Get-Alias
\begin{console}[gobble=12]
Get-Help -Examples Get-Alias
\end{console}
\item Afficher tous les alias dont le nom commence par la lettre g
\begin{console}[gobble=12]
Get-Alias g*
\end{console}
\item Afficher la commande qui correspond à lalias dont le nom est sl
\begin{console}[gobble=12]
Get-Alias sl
\end{console}
\item Afficher tous les alias dont la définition est Get-ChildItem
\begin{console}[gobble=12]
Get-Alias -Definition Get-ChildItem
\end{console}
\item Afficher les informations du volume nommé C (un volume dans votre machine)
\begin{console}[gobble=12]
Get-Item C:\
\end{console}
\item Afficher les méthodes et les propriétés des objets retournés par la commande Get-Location
\begin{console}[gobble=12]
Get-Location | Get-Member
\end{console}
\item Afficher les méthodes et les propriétés des objets retournés par la commande Get-PSDrive
\begin{console}[gobble=12]
Get-PSDrive | Get-Member
\end{console}
\item Afficher le chemin du dossier courant
\begin{console}[gobble=12]
Get-Location
\end{console}
\item Se déplacer à la racine de la partition C: (chemin c) (ou nimporte quelle partition dans votre machine)
\begin{console}[gobble=12]
Set-Location C:\
\end{console}
\item A cet emplacement, créer un dossier nommé testPowerShell
\begin{console}[gobble=12]
New-Item -Path C:\ -Name testPowerShell -ItemType Directory
\end{console}
\item Se déplacer dans le dossier c:testPowerShell
\begin{console}[gobble=12]
Set-Location C:\testPowerShell
\end{console}
\item Créer un dossier nommé testdossier
\begin{console}[gobble=12]
New-Item testdossier -ItemType Directory
\end{console}
\item Créer un fichier nommé test1.txt, contenant la phrase Tp PowerShell 1
\begin{console}[gobble=12]
Write-Output "Tp PowerShell 1" | Out-File test1.txt
\end{console}
\item Afficher la liste des dossiers et fichiers
\begin{console}[gobble=12]
Get-ChildItem
\end{console}
\item Copier le fichier test1.txt sous le nom test2.txt, Renommer le fichier test1.txt avec le nom essai1.txt, Copier le fichier essai1.txt dans le dossier testdossier/essai1.txt
\begin{console}[gobble=12]
Copy-Item -Path test1.txt -Destination test2.txt
Rename-Item -Path test1.txt -NewName essai1.txt
Copy-Item -Path essai1.txt -Destination testdossier\test1.txt
\end{console}
\item 17. Afficher la liste des fichiers du dossier et des sous-dossiers de testPowerShell
\begin{console}[gobble=12]
Get-ChildItem -Recurse testPowerShell
\end{console}
\item 18. Copier le dossier testdossier (avec ses fichiers) dans un nouveau dossier test2dossier, Déplacer le fichier test2.txt dans le dossier testdossier, Supprimer le dossier test2dossier (avec ses fichiers)
\begin{console}[gobble=12]
Copy-Item -Recurse testdossier -Destination test2dossier
Move-Item -Path test2.txt -Destination testdossier
Remove-Item -Recurse test2dossier
\end{console}
\item Tester lexistence du dossier c:/windows
\begin{console}[gobble=12]
Test-Path C:\Windows
\end{console}
\item Afficher le contenu du dossier c:/windows
\begin{console}[gobble=12]
Get-ChildItem C:\Windows
\end{console}
\item Afficher la liste des fichiers\ .exe du dossier c:/windows
\begin{console}[gobble=12]
Get-ChildItem -Path C:\Windows -Name *.exe
\end{console}
\item Affecter à la variable \$loc, le résultat de la commande Get-Location
\begin{console}[gobble=12]
$loc = Get-Location
\end{console}
\item Afficher les propriétés et les méthodes de la variable \$loc
\begin{console}[gobble=12]
$loc | Get-Member
\end{console}
\item Afficher le chemin du dossier courant contenu dans cette variable.
\begin{console}[gobble=12]
Write-Output $loc.Path
\end{console}
\item Afficher les informations sur le disque contenu par cette variable.
\begin{console}[gobble=12]
Write-Output $loc.Drive
\end{console}
\item Afficher les informations sur le `Provider' contenu par cette variable
\begin{console}[gobble=12]
Write-Output $loc.Provider
\end{console}
\item Affecter à la variable \$lect, le résultat de la commande Get-PSDrive Name C
\begin{console}[gobble=12]
$lect = Get-PSDrive -Name C
\end{console}
\item Afficher les propriétés et les méthodes de la variable \$lect
\begin{console}[gobble=12]
$lect | Get-Member
\end{console}
\item A partir de la variable \$lect, afficher la description du lecteur C
\begin{console}[gobble=12]
Write-Output $lect.Description
\end{console}
\item Afficher la taille en octet du volume utilisé
\begin{console}[gobble=12]
Write-Output $lect.Used
\end{console}
\end{enumerate}
\end{document}

94
scripting/styles.sty Normal file
View file

@ -0,0 +1,94 @@
\ProvidesPackage{styles}
\usepackage[
%showframe,
a4paper,includeheadfoot,margin=2cm,top=1cm,bottom=1cm
]{geometry}
\setcounter{tocdepth}{2}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{datetime}
\usepackage{color}
\usepackage{amsmath}
\usepackage{amsfonts}
\everymath{\displaystyle}
\newcommand*\dif{\mathop{}\!\mathrm{d}}
\usepackage{booktabs}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{parskip}
\usepackage{microtype}
\usepackage{listingsutf8}
\lstset{%
inputencoding=utf8/latin1,
basicstyle=\small\ttfamily,
columns=flexible,
breaklines=true,
extendedchars=true,
literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'\i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`\i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\`E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"\i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^\i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1 {œ}{{\oe}}1
{Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 {ű}{{\H{u}}}1
{Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1 {ç}{{\c c}}1
{Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
}
\let\oldlstinputlisting\lstinputlisting
% make \lstinputlisting always have frame
\renewcommand{\lstinputlisting}[2][]{\oldlstinputlisting[frame=single,#1]{#2}}
\lstnewenvironment{console}[1][]{%
\lstset{%
inputencoding=utf8/latin1,
basicstyle=\small\ttfamily\color{white},
columns=flexible,
breaklines=true,
extendedchars=true,
literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'\i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`\i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\`E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"\i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^\i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1 {œ}{{\oe}}1
{Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 {ű}{{\H{u}}}1
{Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1 {ç}{{\c c}}1
{Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1,
backgroundcolor=\color{black}, #1
}%
}{}
\usepackage{graphicx}
\usepackage[hyphens]{url}
\usepackage[colorlinks,hidelinks]{hyperref}
\usepackage{letltxmacro}
\LetLtxMacro{\normalparagraph}{\paragraph}
\renewcommand{\paragraph}[1]{\normalparagraph{#1}\mbox{}}
\sloppy