Bonjour,
Je me suis penché sur l'utilisation des blocs try...catch pour gérer mes erreurs d'exécution et créer du log un peu parlant mais il y a quelque chose qui doit m'échapper dans son fonctionnement.
Pour mes tests, j'ai volontairement crée 2 erreurs lors de la copie d'un fichier d'un répertoire à un autre : une erreur de droit d'accès au répertoire de destination et une erreur de fichier à copié non existant.
A l'exécution de ce code :
J'ai donc soit cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $source = "E:\Scripts\old\test.txt" $dest = "C:\test\test.txt" Copy-Item $source $dest
Soit celle-là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Copy-Item : Impossible de trouver le chemin d'accès «*E:\Scripts\old\test.txt*», car il n'existe pas. Au caractère E:\Scripts\dev\Sans titre1.ps1:22 : 1 + Copy-Item $source $dest + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (E:\Scripts\old\test.txt:String) [Copy-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
Voilà donc ce que j'essaye pour attraper et personnaliser le retour de ces erreurs mais qui ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Copy-Item : L'accès au chemin d'accès 'C:\test\test.txt' est refusé. Au caractère E:\Scripts\dev\Sans titre1.ps1:22 : 1 + Copy-Item $source $dest + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (E:\Scripts\old\test2.txt:FileInfo) [Copy-Item], UnauthorizedAccessException + FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand
OU
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $source = "E:\Scripts\old\test.txt" $dest = "C:\test\test.txt" try{ Copy-Item $source $dest -ErrorAction Stop }catch [CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand]{ Write-Host "pas les droits" }catch [PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand]{ Write-Host "existe pas" }
Quelqu'un pourrait-il m'expliquer pourquoi cela n'est pas bon svp, car là je sèche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $source = "E:\Scripts\old\test.txt" $dest = "C:\test\test.txt" try{ Copy-Item $source $dest -ErrorAction Stop }catch [Microsoft.PowerShell.Commands.CopyItemCommand.CopyFileInfoItemUnauthorizedAccessError]{ Write-Host "pas les droits" }catch [Microsoft.PowerShell.Commands.CopyItemCommand.PathNotFound]{ Write-Host "existe pas" }
Merci d'avance![]()
Partager