Question
[Résolu] Script de Sauvegarde
- Thomas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
[code:1]function Copie
{
$num = 1
chcp 1252 | Out-Null
$log = \"$path\backup$Date_ajd.log\"
robocopy \"$inclu1\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log:$log | Out-Null
$lastlog1 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog1 $inclu1 $dest1
robocopy \"$inclu2\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog2 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog2 $inclu2 $dest1
robocopy \"$inclu3\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog3 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog3 $inclu3 $dest1
robocopy \"$inclu4\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog4 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog4 $inclu4 $dest1
robocopy \"$inclu5\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog5 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog5 $inclu5 $dest1
robocopy \"$inclu6\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog6 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog6 $inclu6 $dest1
robocopy \"$inclu7\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog7 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog7 $inclu7 $dest1
robocopy \"$inclu8\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog8 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog8 $inclu8 $dest1
robocopy \"$inclu9\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog9 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog9 $inclu9 $dest1
robocopy \"$inclu10\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog10 = $LASTEXITCODE
$contenu = Affiche_Erreur $lastlog10 $inclu10 $dest1
return $contenu
}[/code:1]
En rajoutant | Out-Null nos sorties non voulues s'en vont effectivement.
Ne reste plus qu'à optimiser tout ça, si vous avez quelconque conseil d'optimisation du code, je suis preneur (je rajouterais pas mal de commentaires par la même occasion)
Edit: En fait, je vais voir de mon côté en plus, mais je dois faire une détection automatique du lecteur externe où la sauvegarde sera faîte, imaginons que nous mettions un disque dur externe quelconque, nous devons détecter le chemin automatiquement de destination.<br><br>Message édité par: Naumisa, à: 15/11/17 15:36
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
un début de piste optimisation :Ne reste plus qu'à optimiser tout ça, si vous avez quelconque conseil d'optimisation du code, je suis preneur (je rajouterais pas mal de commentaires par la même occasion)
[code:1]function Copie {
$num = 1
chcp 1252 | Out-Null
$log = \"$path\backup$Date_ajd.log\"
$contenu = \"\"
$inclu1, $inclu2, $inclu3, $inclu4, $inclu5, $inclu6, $inclu7, $inclu8, $inclu9, $inclu10 | foreach {
$lastlog = $null
robocopy \"$_\" \"$dest1\" /MIR /Z /r:1 /w:1 /FFT /NP /XO /log+:$log | Out-Null
$lastlog = $LASTEXITCODE
$contenu += Affiche_Erreur $lastlog $_ $dest1
}
return $contenu
}
[/code:1]
un autre début de piste prendre le type 2En fait, je vais voir de mon côté en plus, mais je dois faire une détection automatique du lecteur externe où la sauvegarde sera faîte, imaginons que nous mettions un disque dur externe quelconque, nous devons détecter le chemin automatiquement de destination.
Connexion ou Créer un compte pour participer à la conversation.
- Thomas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Merci de votre aide, mais avec votre fonction Copie, je me retrouve avec ça en sortie '-'
D'ailleurs, je me suis rendu compte que mon $num était comme qui dirait inutile x')
[code:1]C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
=> D: = Erreur fatale lors de l'opération. Voir fichier de Log.
C:\Users\tw18803\Desktop\Thomas\Projet PowerShell => D: = Erreur fatale lors de l'opération. Voir fichier de Log.
...[/code:1]
Autrement, je vous remercie de votre piste, je me penche dessus pour voir comment faire
Connexion ou Créer un compte pour participer à la conversation.
- Thomas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
[code:1]$lecteur = Get-Volume | Where { $_.FileSystemLabel –eq ‘SAUV_SSIG075’ }
$dest1 = $lecteur.DriveLetter
$dest1 += \":\"[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Thomas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Ce code :
[code:1]$volume = get-wmiobject -Class Win32_Volume | where{$_.label -eq 'USB'}
$Eject = New-Object -comObject Shell.Application
$Eject.NameSpace(17).ParseName($volume.driveletter).InvokeVerb(“Eject”)[/code:1]
N'éjecte uniquement les Clés USB, et non le Disque Dur externe.
J'avais testé de cette manière sinon :
[code:1]$path = \"C:\Users\tw18803\Desktop\Thomas\Projet PowerShell\diskpart.txt\"
INITIALIZE-USBBOOT
DISKPART /S $path[/code:1]
Avec comme fichier diskpart.txt:
[code:1]SELECT VOLUME H
REMOVE[/code:1]
Ce qui fonctionne mais qui empêche la réattribution automatique d'une lettre sur n'importe quel ordinateur...
Auriez-vous une autre méthode à me conseiller ?
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Script de Sauvegarde