Question
Integration Progress barre
- David
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
il y a 10 ans 10 mois #20369
par David
Integration Progress barre a été créé par David
Alors je reviens à vous pour ce problème d’intégration de progress bar, j'ai avance un peu mais je reste bloqué :
J'ai trouvé un script de fonction qui m'a l'air de parfaitement correspondre à mes attentes keithga.wordpress.com/2014/06/23/copy-itemwithprogress/
J'ai récupéré le script :
[code:1]<#
.SYNOPSIS
RoboCopy with PowerShell progress.
.DESCRIPTION
Performs file copy with RoboCopy. Output from RoboCopy is captured,
parsed, and returned as Powershell native status and progress.
.PARAMETER RobocopyArgs
List of arguments passed directly to Robocopy.
Must not conflict with defaults: /ndl /TEE /Bytes /NC /nfl /Log
.OUTPUTS
Returns an object with the status of final copy.
REMINDER: Any error level below 8 can be considered a success by RoboCopy.
.EXAMPLE
C:\PS> .\Copy-ItemWithProgress c:\Src d:\Dest
Copy the contents of the c:\Src directory to a directory d:\Dest
Without the /e or /mir switch, only files from the root of c:\src are copied.
.EXAMPLE
C:\PS> .\Copy-ItemWithProgress '\"c:\Src Files\"' d:\Dest /mir /xf *.log -Verbose
Copy the contents of the 'c:\Name with Space' directory to a directory d:\Dest
/mir and /XF parameters are passed to robocopy, and script is run verbose
.LINK
keithga.wordpress.com/2014/06/23/copy-itemwithprogress
.NOTES
By Keith S. Garner (Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.) - 6/23/2014
With inspiration by Trevor Sullivan @pcgeek86
#>
[CmdletBinding()]
param(
[Parameter(Mandatory = $true,ValueFromRemainingArguments=$true)]
[string[]] $RobocopyArgs
)
$ScanLog = [IO.Path]::GetTempFileName()
$RoboLog = [IO.Path]::GetTempFileName()
$ScanArgs = $RobocopyArgs + \"/ndl /TEE /bytes /Log:$ScanLog /nfl /L\".Split(\" \"«»)
$RoboArgs = $RobocopyArgs + \"/ndl /TEE /bytes /Log:$RoboLog /NC\".Split(\" \"«»)
# Launch Robocopy Processes
write-verbose (\"Robocopy Scan:`n\" + ($ScanArgs -join \" \"«»))
write-verbose (\"Robocopy Full:`n\" + ($RoboArgs -join \" \"«»))
$ScanRun = start-process robocopy -PassThru -WindowStyle Hidden -ArgumentList $ScanArgs
$RoboRun = start-process robocopy -PassThru -WindowStyle Hidden -ArgumentList $RoboArgs
# Parse Robocopy \"Scan\" pass
$ScanRun.WaitForExit()
$LogData = get-content $ScanLog
if ($ScanRun.ExitCode -ge 8)
{
$LogData|out-string|Write-Error
throw \"Robocopy $($ScanRun.ExitCode)\"
}
$FileSize = [regex]::Match($LogData[-4],\".+:\s+(\d+)\s+(\d+)\"«»).Groups[2].Value
write-verbose (\"Robocopy Bytes: $FileSize `n\" +($LogData -join \"`n\"«»))
# Monitor Full RoboCopy
while (!$RoboRun.HasExited)
{
$LogData = get-content $RoboLog
$Files = $LogData -match \"^\s*(\d+)\s+(\S+)\"
if ($Files -ne $Null )
{
$copied = ($Files[0..($Files.Length-2)] | %{$_.Split(\"`t\"«»)[-2]} | Measure -sum).Sum
if ($LogData[-1] -match \"(100|\d?\d\.\d)\%\"«»)
{
write-progress Copy -ParentID $RoboRun.ID -percentComplete $LogData[-1].Trim(\"% `t\"«») $LogData[-1]
$Copied += $Files[-1].Split(\"`t\"«»)[-2] /100 * ($LogData[-1].Trim(\"% `t\"«»))
}
else
{
write-progress Copy -ParentID $RoboRun.ID -Complete
}
write-progress ROBOCOPY -ID $RoboRun.ID -PercentComplete ($Copied/$FileSize*100) $Files[-1].Split(\"`t\"«»)[-1]
}
}
# Parse full RoboCopy pass results, and cleanup
(get-content $RoboLog)[-11..-2] | out-string | Write-Verbose
[PSCustomObject]@{ ExitCode = $RoboRun.ExitCode }
remove-item $RoboLog, $ScanLog[/code:1]
Je voudrais m'en servir pour faire ma copie (1 dossier contenant plusieurs sous-dossiers contenant tous des fichiers
J'ai donc créé un second .ps1 qui fait appel au précédent script dont voici le code :
[code:1]C:\Users\David\Desktop\Copy-ItemWithProgress.ps1 \"E:\source\" \"C:\destination\\" -verbose[/code:1]
Mais à l'execution j'ai ces messages d'erreur :
J'ai eu beau chercher toute la journée, je ne vois pas à quoi cela peut être du
Pouvez vous me dire si ma façon de faire est la bonne svp sachant que je decouvre le scripting
Et surtout comment corriger ces erreurs
Je vous remercie par avance
David
J'ai trouvé un script de fonction qui m'a l'air de parfaitement correspondre à mes attentes keithga.wordpress.com/2014/06/23/copy-itemwithprogress/
J'ai récupéré le script :
[code:1]<#
.SYNOPSIS
RoboCopy with PowerShell progress.
.DESCRIPTION
Performs file copy with RoboCopy. Output from RoboCopy is captured,
parsed, and returned as Powershell native status and progress.
.PARAMETER RobocopyArgs
List of arguments passed directly to Robocopy.
Must not conflict with defaults: /ndl /TEE /Bytes /NC /nfl /Log
.OUTPUTS
Returns an object with the status of final copy.
REMINDER: Any error level below 8 can be considered a success by RoboCopy.
.EXAMPLE
C:\PS> .\Copy-ItemWithProgress c:\Src d:\Dest
Copy the contents of the c:\Src directory to a directory d:\Dest
Without the /e or /mir switch, only files from the root of c:\src are copied.
.EXAMPLE
C:\PS> .\Copy-ItemWithProgress '\"c:\Src Files\"' d:\Dest /mir /xf *.log -Verbose
Copy the contents of the 'c:\Name with Space' directory to a directory d:\Dest
/mir and /XF parameters are passed to robocopy, and script is run verbose
.LINK
keithga.wordpress.com/2014/06/23/copy-itemwithprogress
.NOTES
By Keith S. Garner (Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.) - 6/23/2014
With inspiration by Trevor Sullivan @pcgeek86
#>
[CmdletBinding()]
param(
[Parameter(Mandatory = $true,ValueFromRemainingArguments=$true)]
[string[]] $RobocopyArgs
)
$ScanLog = [IO.Path]::GetTempFileName()
$RoboLog = [IO.Path]::GetTempFileName()
$ScanArgs = $RobocopyArgs + \"/ndl /TEE /bytes /Log:$ScanLog /nfl /L\".Split(\" \"«»)
$RoboArgs = $RobocopyArgs + \"/ndl /TEE /bytes /Log:$RoboLog /NC\".Split(\" \"«»)
# Launch Robocopy Processes
write-verbose (\"Robocopy Scan:`n\" + ($ScanArgs -join \" \"«»))
write-verbose (\"Robocopy Full:`n\" + ($RoboArgs -join \" \"«»))
$ScanRun = start-process robocopy -PassThru -WindowStyle Hidden -ArgumentList $ScanArgs
$RoboRun = start-process robocopy -PassThru -WindowStyle Hidden -ArgumentList $RoboArgs
# Parse Robocopy \"Scan\" pass
$ScanRun.WaitForExit()
$LogData = get-content $ScanLog
if ($ScanRun.ExitCode -ge 8)
{
$LogData|out-string|Write-Error
throw \"Robocopy $($ScanRun.ExitCode)\"
}
$FileSize = [regex]::Match($LogData[-4],\".+:\s+(\d+)\s+(\d+)\"«»).Groups[2].Value
write-verbose (\"Robocopy Bytes: $FileSize `n\" +($LogData -join \"`n\"«»))
# Monitor Full RoboCopy
while (!$RoboRun.HasExited)
{
$LogData = get-content $RoboLog
$Files = $LogData -match \"^\s*(\d+)\s+(\S+)\"
if ($Files -ne $Null )
{
$copied = ($Files[0..($Files.Length-2)] | %{$_.Split(\"`t\"«»)[-2]} | Measure -sum).Sum
if ($LogData[-1] -match \"(100|\d?\d\.\d)\%\"«»)
{
write-progress Copy -ParentID $RoboRun.ID -percentComplete $LogData[-1].Trim(\"% `t\"«») $LogData[-1]
$Copied += $Files[-1].Split(\"`t\"«»)[-2] /100 * ($LogData[-1].Trim(\"% `t\"«»))
}
else
{
write-progress Copy -ParentID $RoboRun.ID -Complete
}
write-progress ROBOCOPY -ID $RoboRun.ID -PercentComplete ($Copied/$FileSize*100) $Files[-1].Split(\"`t\"«»)[-1]
}
}
# Parse full RoboCopy pass results, and cleanup
(get-content $RoboLog)[-11..-2] | out-string | Write-Verbose
[PSCustomObject]@{ ExitCode = $RoboRun.ExitCode }
remove-item $RoboLog, $ScanLog[/code:1]
Je voudrais m'en servir pour faire ma copie (1 dossier contenant plusieurs sous-dossiers contenant tous des fichiers
J'ai donc créé un second .ps1 qui fait appel au précédent script dont voici le code :
[code:1]C:\Users\David\Desktop\Copy-ItemWithProgress.ps1 \"E:\source\" \"C:\destination\\" -verbose[/code:1]
Mais à l'execution j'ai ces messages d'erreur :
J'ai eu beau chercher toute la journée, je ne vois pas à quoi cela peut être du
Pouvez vous me dire si ma façon de faire est la bonne svp sachant que je decouvre le scripting
Et surtout comment corriger ces erreurs
Je vous remercie par avance
David
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 10 ans 10 mois #20371
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Integration Progress barre
Salut,
goro écrit:
La version de RoboCopy ?
goro écrit:
goro écrit:
le script n'ayant pas de gestion d'erreur c'est à l'utilsateur de débugger.
Insére des appels à write-debug pour tracer ce qui se passe ou utilise le debugger intégré de ISE
goro écrit:
L'analyse du log semble erroné, à moins que le fichier de log soit vide.je ne vois pas à quoi cela peut être du
La version de RoboCopy ?
goro écrit:
Pas de soucis.Pouvez vous me dire si ma façon de faire est la bonne svp sachant que je decouvre le scripting
goro écrit:
goro écrit:
Sans le fichier de log, pas facile à dire.Et surtout comment corriger ces erreurs
le script n'ayant pas de gestion d'erreur c'est à l'utilsateur de débugger.
Insére des appels à write-debug pour tracer ce qui se passe ou utilise le debugger intégré de ISE
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- David
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
il y a 10 ans 10 mois #20372
par David
Réponse de David sur le sujet Re:Integration Progress barre
Salut et merci pour ta réponse !
Alors en effet, le fichier de log est vide ....
Je sais pas pk et ce que ça veut dire ...
Pour : write-debug je ne sais pas ou le mettre ni même si j'ai juste à copier cette ligne exacte simplement ou ajouter autre chose, j’espère que tu pourras me renseigner
Bonne nuit a demain et merci d'avance
Alors en effet, le fichier de log est vide ....
Je sais pas pk et ce que ça veut dire ...
Pour : write-debug je ne sais pas ou le mettre ni même si j'ai juste à copier cette ligne exacte simplement ou ajouter autre chose, j’espère que tu pourras me renseigner
Bonne nuit a demain et merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 10 ans 10 mois #20374
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Integration Progress barre
goro écrit:

En pêchant sur le net, on n'est pas assuré de tjr attraper qq chose de comestible...
Il faut extraire la ligne de commande exécutée et la vérifier.
goro écrit:
[code:1]
...
$ScanRun.WaitForExit()
Write-Debug \" ScanLog vide ? $( (Dir $Scanlog).Length -eq 0)\" #Si l'assertion est fausse, pas la peine d'aller plus loin...
$LogData = get-content $ScanLog
...
[/code:1]
Pour activer l'affichage:
[code:1]
$DebugPreference ='Continue'
#Run script
#désactiver
$DebugPreference ='SilentlyContinue'
[/code:1]
Moi non plusJe sais pas pk et ce que ça veut dire ...
En pêchant sur le net, on n'est pas assuré de tjr attraper qq chose de comestible...
Il faut extraire la ligne de commande exécutée et la vérifier.
goro écrit:
Dans le script :Pour : write-debug je ne sais pas ou le mettre ni même si j'ai juste à copier cette ligne exacte simplement ou ajouter autre chose,
[code:1]
...
$ScanRun.WaitForExit()
Write-Debug \" ScanLog vide ? $( (Dir $Scanlog).Length -eq 0)\" #Si l'assertion est fausse, pas la peine d'aller plus loin...
$LogData = get-content $ScanLog
...
[/code:1]
Pour activer l'affichage:
[code:1]
$DebugPreference ='Continue'
#Run script
#désactiver
$DebugPreference ='SilentlyContinue'
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- David
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
il y a 10 ans 10 mois #20455
par David
Réponse de David sur le sujet Re:Integration Progress barre
Salut Laurent,
Alors tout d'abord merci pour ta réponse, mais n'arrivant à rien dû a mon incompétence dans le domaine, je me suis replié sur un autre script de copie que j'ai trouvé sur ce même forum.
[code:1]Function Copy-ItemWithProgressBar{
[cmdletBinding()]
Param (
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
$Source,
[parameter(Mandatory=$true, ValueFromPipeline=$false)]
$Destination,
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
$Compteur_Item_Copie
)
begin
{
$numberofitems = @(Get-ChildItem $Source).Count
$cpt = 0
$Source = Get-Item -Path $Source
}
process
{
if ($Source.PSIsContainer)
{
foreach ($item in (Get-ChildItem $Source))
{
if (!(Test-Path $Destination))
{
New-Item -Path $Destination -ItemType Directory | Out-Null
}
if ($item.PSIsContainer) # c'est un dossier
{
Copy-ItemWithProgressBar -Source $item.FullName -Destination (Join-Path $Destination $item.Name) $Compteur_Item_Copie
}
else # c'est un fichier
{
$cpt++
Copy-Item -Path $item.Fullname -Destination $Destination
$Totalisateur = \"COPIE ITEM \" + $Compteur_Item_Copie + \" de \" + $totalfichiers
Write-Progress -Id 1 -CurrentOperation $Totalisateur -Activity (\"DOSSIER : {0}\" -f $Source) -PercentComplete ($cpt / $numberofitems * 100) -Status (\"FICHIER : {0} - {1} sur {2}\" -f $item.Name, $cpt, $numberofitems)
}
} #end foreach
}
} #end process
}
cls
$nbfiles = Get-ChildItem \"$Source\" -Force -Recurse
$totalfichiers = $nbfiles.count
# Import Assemblies
[void][reflection.assembly]::Load(\"System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"«»)
#region | Global Variables
$date = Get-Date -Format dd.MM.yy
$backupFolder = \"Backup du \" + \"$date\"
#endregion
$UsbDisk = gwmi win32_diskdrive | ?{$_.interfacetype -eq \"USB\"} | %{gwmi -Query \"ASSOCIATORS OF {Win32_DiskDrive.DeviceID=`\"$($_.DeviceID.replace('\','\\'))`\"} WHERE AssocClass = Win32_DiskDriveToDiskPartition\"} | %{gwmi -Query \"ASSOCIATORS OF {Win32_DiskPartition.DeviceID=`\"$($_.DeviceID)`\"} WHERE AssocClass = Win32_LogicalDiskToPartition\"} | %{$_.deviceid}
# if we not find the USB Drive, Throw error
if ( $UsbDisk -eq $null ) { #IF_1
[void][System.Windows.Forms.MessageBox]::«»Show(\"Pas de support USB trouvé, Merci d'en insérer un !\",\"Support USB Absent\"«»)
} #IF_1
else {
$testfolder = Test-Path \"$UsbDisk\$backupFolder\"
if ($testfolder -eq $true) {
[void][System.Windows.Forms.MessageBox]::«»Show(\"Un dossier $UsbDisk\$backupFolder existe déjà, Merci de le renommer ou le supprimer avant de continuer.\",\"Le dossier existe déjà\"«»)
}
else {
mkdir \"$UsbDisk\$backupFolder\"
# Start Copying Data
Get-Process | Where { $_.Name -Eq \"Firefox\" } | Kill
copy-itemWithProgressBar -Source \"$ENV:USERPROFILE\Desktop\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-GERANT\Desktop\" /mir
copy-itemWithProgressBar -Source \"$ENV:USERPROFILE\Documents\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-GERANT\Documents\" /mir
copy-itemWithProgressBar -Source \"$ENV:«»SystemDrive\Program Files (x86)\VIAGRA-CIALIS\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-OLDAPI\VIAGRA-CIALIS\" /mir
copy-itemWithProgressBar -Source \"$ENV:«»SystemDrive\VIAGRA\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-OLDAPI\VIAGRA\" /mir
copy-itemWithProgressBar -Source \"$ENV:«»SystemDrive\CIALIS\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-OLDAPI\CIALIS\" /mir
copy-itemWithProgressBar -Source \"$ENV:APPDATA\Mozilla\Firefox\Profiles\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-GERANT\Profiles\" /mir
Reg export HKLM\Software\DCIALIS\ $UsbDisk\$backupFolder\SAUVDIR-OLDAPI\CleWinkey.txt
Reg export HKLM\Software\CIALIS\ $UsbDisk\$backupFolder\SAUVDIR-OLDAPI\ClePaie.txt
Write-Host -ForegroundColor 'Green' \"Backup Complet !\"
#Open backup folder
explorer \"$UsbDisk\$backupFolder\"
}
} #Else_1
#Penser à retirer le (x86) du chemin de VIAGRA-CIALIS
[/code:1]
Si vous avez des avis ou des conseils sur celui ci n’hésitez pas c un condensé de recherches sur google et d'adaptations alors j'ai peut être oublié des choses
Voici mon script quasiment finalisé
J'ai cependant une question:
J'ai, sur certaines machines que je dois sauvegarder avec ce script, des partitions D: (GERANT) et E: (Sauvegarde)
Comment pourrais je faire pour que si ces lecteurs sont détéctés, ils soient copiés en intégralité ? Sachant qu'on ne peut pas se servir des lettres de lecteur car mon HDD externe ( en l'absence de ces partitions aura la lettre D: )
Ca fait 3 jours que je cherche et je n'ai pas trouvé grand chose avec l'utilisation du nom au lieu de la lettre de lecteur
un truc du genre
if Sauvegarde exist le copier et si E existe forcement D existe donc on copie les 2
Enfin je ne sais pas si je suis très clair ..
Merci d'avance de votre temps et aide
David<br><br>Message édité par: goro, à: 12/07/15 13:21
Alors tout d'abord merci pour ta réponse, mais n'arrivant à rien dû a mon incompétence dans le domaine, je me suis replié sur un autre script de copie que j'ai trouvé sur ce même forum.
[code:1]Function Copy-ItemWithProgressBar{
[cmdletBinding()]
Param (
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
$Source,
[parameter(Mandatory=$true, ValueFromPipeline=$false)]
$Destination,
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
$Compteur_Item_Copie
)
begin
{
$numberofitems = @(Get-ChildItem $Source).Count
$cpt = 0
$Source = Get-Item -Path $Source
}
process
{
if ($Source.PSIsContainer)
{
foreach ($item in (Get-ChildItem $Source))
{
if (!(Test-Path $Destination))
{
New-Item -Path $Destination -ItemType Directory | Out-Null
}
if ($item.PSIsContainer) # c'est un dossier
{
Copy-ItemWithProgressBar -Source $item.FullName -Destination (Join-Path $Destination $item.Name) $Compteur_Item_Copie
}
else # c'est un fichier
{
$cpt++
Copy-Item -Path $item.Fullname -Destination $Destination
$Totalisateur = \"COPIE ITEM \" + $Compteur_Item_Copie + \" de \" + $totalfichiers
Write-Progress -Id 1 -CurrentOperation $Totalisateur -Activity (\"DOSSIER : {0}\" -f $Source) -PercentComplete ($cpt / $numberofitems * 100) -Status (\"FICHIER : {0} - {1} sur {2}\" -f $item.Name, $cpt, $numberofitems)
}
} #end foreach
}
} #end process
}
cls
$nbfiles = Get-ChildItem \"$Source\" -Force -Recurse
$totalfichiers = $nbfiles.count
# Import Assemblies
[void][reflection.assembly]::Load(\"System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"«»)
#region | Global Variables
$date = Get-Date -Format dd.MM.yy
$backupFolder = \"Backup du \" + \"$date\"
#endregion
$UsbDisk = gwmi win32_diskdrive | ?{$_.interfacetype -eq \"USB\"} | %{gwmi -Query \"ASSOCIATORS OF {Win32_DiskDrive.DeviceID=`\"$($_.DeviceID.replace('\','\\'))`\"} WHERE AssocClass = Win32_DiskDriveToDiskPartition\"} | %{gwmi -Query \"ASSOCIATORS OF {Win32_DiskPartition.DeviceID=`\"$($_.DeviceID)`\"} WHERE AssocClass = Win32_LogicalDiskToPartition\"} | %{$_.deviceid}
# if we not find the USB Drive, Throw error
if ( $UsbDisk -eq $null ) { #IF_1
[void][System.Windows.Forms.MessageBox]::«»Show(\"Pas de support USB trouvé, Merci d'en insérer un !\",\"Support USB Absent\"«»)
} #IF_1
else {
$testfolder = Test-Path \"$UsbDisk\$backupFolder\"
if ($testfolder -eq $true) {
[void][System.Windows.Forms.MessageBox]::«»Show(\"Un dossier $UsbDisk\$backupFolder existe déjà, Merci de le renommer ou le supprimer avant de continuer.\",\"Le dossier existe déjà\"«»)
}
else {
mkdir \"$UsbDisk\$backupFolder\"
# Start Copying Data
Get-Process | Where { $_.Name -Eq \"Firefox\" } | Kill
copy-itemWithProgressBar -Source \"$ENV:USERPROFILE\Desktop\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-GERANT\Desktop\" /mir
copy-itemWithProgressBar -Source \"$ENV:USERPROFILE\Documents\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-GERANT\Documents\" /mir
copy-itemWithProgressBar -Source \"$ENV:«»SystemDrive\Program Files (x86)\VIAGRA-CIALIS\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-OLDAPI\VIAGRA-CIALIS\" /mir
copy-itemWithProgressBar -Source \"$ENV:«»SystemDrive\VIAGRA\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-OLDAPI\VIAGRA\" /mir
copy-itemWithProgressBar -Source \"$ENV:«»SystemDrive\CIALIS\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-OLDAPI\CIALIS\" /mir
copy-itemWithProgressBar -Source \"$ENV:APPDATA\Mozilla\Firefox\Profiles\" -Destination \"$UsbDisk\$backupFolder\SAUVDIR-GERANT\Profiles\" /mir
Reg export HKLM\Software\DCIALIS\ $UsbDisk\$backupFolder\SAUVDIR-OLDAPI\CleWinkey.txt
Reg export HKLM\Software\CIALIS\ $UsbDisk\$backupFolder\SAUVDIR-OLDAPI\ClePaie.txt
Write-Host -ForegroundColor 'Green' \"Backup Complet !\"
#Open backup folder
explorer \"$UsbDisk\$backupFolder\"
}
} #Else_1
#Penser à retirer le (x86) du chemin de VIAGRA-CIALIS
[/code:1]
Si vous avez des avis ou des conseils sur celui ci n’hésitez pas c un condensé de recherches sur google et d'adaptations alors j'ai peut être oublié des choses
Voici mon script quasiment finalisé
J'ai cependant une question:
J'ai, sur certaines machines que je dois sauvegarder avec ce script, des partitions D: (GERANT) et E: (Sauvegarde)
Comment pourrais je faire pour que si ces lecteurs sont détéctés, ils soient copiés en intégralité ? Sachant qu'on ne peut pas se servir des lettres de lecteur car mon HDD externe ( en l'absence de ces partitions aura la lettre D: )
Ca fait 3 jours que je cherche et je n'ai pas trouvé grand chose avec l'utilisation du nom au lieu de la lettre de lecteur
un truc du genre
if Sauvegarde exist le copier et si E existe forcement D existe donc on copie les 2
Enfin je ne sais pas si je suis très clair ..
Merci d'avance de votre temps et aide
David<br><br>Message édité par: goro, à: 12/07/15 13:21
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Integration Progress barre