Question
Mauvais ordre affichage des commandes
- DUBOIS
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 4 ans 4 mois #29456
par DUBOIS
Mauvais ordre affichage des commandes a été créé par DUBOIS
Bonjour,
Je suis actuellement en train d'écrire mon premier script en powershell et j'observe un comportement d'affichage assez étrange... (du moins pour moi!)
Lors de l'exécution de mon script je constate que l'affichage du résultat de mes commandes ne suit pas l'ordre des commandes de mon script.
Pourriez-vous m'éclairé sur ce comportement ?
Merci d'avance.
Voici le script :
[code:1]$ServerInstSrc = \"SRV1\"
$ServerInstDest = \"SRV1\DEV\"
$BackupDir = \"D:\DBBACKUP\"
$RepoGIT = \"D:\RepoGIT\\"
$DataBaseNaME = \"AdventureWorks2017\"
$basicDbUsers = \"dbo\",\"guest\",\"INFORMATION_SCHEMA\",\"sys\"
Write-Output \"Backup database $DatabaseName from $ServerInstSrc...\"
Backup-DbaDatabase -SqlInstance $ServerInstSrc -Path $BackupDir -Database $DataBaseNaME
$DBLatestBck = (Get-ChildItem -Path $BackupDir | Select-Object -last 1).FullName
Write-Output \"Restoring $DatabaseName on $ServerInstDest...\"
Restore-DbaDatabase -SqlInstance $ServerInstDest -Path $DBLatestBck -DatabaseName $DataBaseNaME -WithReplace
Write-Output \"Removing orphaned users..\"`n
Remove-DbaDbOrphanUser -SqlInstance $ServerInstDest -Database $DataBaseNaME -Force
#Clone repository GITLIST
Write-Output \"Cloning GIT repository...\"
if ( Test-Path -Path 'D:\RepoGIT\'){
Remove-Item -Path 'D:\RepoGIT\*' -Recurse -Force
git clone ssh://xxxxx@mon_nom_de_serveur/home/db_rights/db/.git D:\RepoGIT
Write-Output `n
}
[/code:1]
et voici l'output :
[code:1]Backup database AdventureWorks2017 from SRV1...
Cloning into 'D:\RepoGIT'...
remote: Counting objects: 5995, done.
remote: Compressing objects: 100% (5876/5876), done.
remote: Total 5995 (delta 2386), reused 0 (delta 0)
Receiving objects: 100% (5995/5995), 654.19 KiB | 2.10 MiB/s, done.
Resolving deltas: 100% (2386/2386), done.
SqlInstance Database Type TotalSize DeviceType Start Duration End
----
---
SRV1 AdventureWorks2017 Full 206,08 MB Disk 2019-11-20 08:12:32.000 00:00:01 2019-11-20 08:12:33.000
Restoring AdventureWorks2017 on SRV1\DEV...
ComputerName : SRV1
InstanceName : DEV
SqlInstance : SRV1\DEV
BackupFile : D:\DBBACKUP\AdventureWorks2017_201911200812.bak
BackupFilesCount : 1
BackupSize : 206,08 MB
CompressedBackupSize : 206,08 MB
Database : AdventureWorks2017
Owner : XXXX\xxxxxx
DatabaseRestoreTime : 00:00:01
FileRestoreTime : 00:00:01
NoRecovery : False
RestoreComplete : True
RestoredFile : AdventureWorks2017.mdf,AdventureWorks2017_log.ldf
RestoredFilesCount : 2
Script : {RESTORE DATABASE [AdventureWorks2017] FROM DISK = N'D:\DBBACKUP\AdventureWorks2017_201911200812.bak' WITH FILE = 1, MOVE N'AdventureWorks2017' TO N'C:\Program Files\Microsoft SQL
Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017.mdf', MOVE N'AdventureWorks2017_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017_log.ldf', NOUNLOAD,
REPLACE, STATS = 10}
RestoreDirectory : C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA
WithReplace : True
Removing orphaned users..
Cloning GIT repository...
[/code:1]
et voici l'output tel qu'il devrait être logiquement (en suivant l'ordre des commmandes):
[code:1]Backup database AdventureWorks2017 from SRV1...
SqlInstance Database Type TotalSize DeviceType Start Duration End
----
---
SRV1 AdventureWorks2017 Full 206,08 MB Disk 2019-11-20 08:12:32.000 00:00:01 2019-11-20 08:12:33.000
Restoring AdventureWorks2017 on SRV1\DEV...
ComputerName : SRV1
InstanceName : DEV
SqlInstance : SRV1\DEV
BackupFile : D:\DBBACKUP\AdventureWorks2017_201911200812.bak
BackupFilesCount : 1
BackupSize : 206,08 MB
CompressedBackupSize : 206,08 MB
Database : AdventureWorks2017
Owner : XXXX\xxxxxx
DatabaseRestoreTime : 00:00:01
FileRestoreTime : 00:00:01
NoRecovery : False
RestoreComplete : True
RestoredFile : AdventureWorks2017.mdf,AdventureWorks2017_log.ldf
RestoredFilesCount : 2
Script : {RESTORE DATABASE [AdventureWorks2017] FROM DISK = N'D:\DBBACKUP\AdventureWorks2017_201911200812.bak' WITH FILE = 1, MOVE N'AdventureWorks2017' TO N'C:\Program Files\Microsoft SQL
Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017.mdf', MOVE N'AdventureWorks2017_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017_log.ldf', NOUNLOAD,
REPLACE, STATS = 10}
RestoreDirectory : C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA
WithReplace : True
Removing orphaned users..
Cloning GIT repository...
Cloning into 'D:\RepoGIT'...
remote: Counting objects: 5995, done.
remote: Compressing objects: 100% (5876/5876), done.
remote: Total 5995 (delta 2386), reused 0 (delta 0)
Receiving objects: 100% (5995/5995), 654.19 KiB | 2.10 MiB/s, done.
Resolving deltas: 100% (2386/2386), done.
[/code:1]
Je suis actuellement en train d'écrire mon premier script en powershell et j'observe un comportement d'affichage assez étrange... (du moins pour moi!)
Lors de l'exécution de mon script je constate que l'affichage du résultat de mes commandes ne suit pas l'ordre des commandes de mon script.
Pourriez-vous m'éclairé sur ce comportement ?
Merci d'avance.
Voici le script :
[code:1]$ServerInstSrc = \"SRV1\"
$ServerInstDest = \"SRV1\DEV\"
$BackupDir = \"D:\DBBACKUP\"
$RepoGIT = \"D:\RepoGIT\\"
$DataBaseNaME = \"AdventureWorks2017\"
$basicDbUsers = \"dbo\",\"guest\",\"INFORMATION_SCHEMA\",\"sys\"
Write-Output \"Backup database $DatabaseName from $ServerInstSrc...\"
Backup-DbaDatabase -SqlInstance $ServerInstSrc -Path $BackupDir -Database $DataBaseNaME
$DBLatestBck = (Get-ChildItem -Path $BackupDir | Select-Object -last 1).FullName
Write-Output \"Restoring $DatabaseName on $ServerInstDest...\"
Restore-DbaDatabase -SqlInstance $ServerInstDest -Path $DBLatestBck -DatabaseName $DataBaseNaME -WithReplace
Write-Output \"Removing orphaned users..\"`n
Remove-DbaDbOrphanUser -SqlInstance $ServerInstDest -Database $DataBaseNaME -Force
#Clone repository GITLIST
Write-Output \"Cloning GIT repository...\"
if ( Test-Path -Path 'D:\RepoGIT\'){
Remove-Item -Path 'D:\RepoGIT\*' -Recurse -Force
git clone ssh://xxxxx@mon_nom_de_serveur/home/db_rights/db/.git D:\RepoGIT
Write-Output `n
}
[/code:1]
et voici l'output :
[code:1]Backup database AdventureWorks2017 from SRV1...
Cloning into 'D:\RepoGIT'...
remote: Counting objects: 5995, done.
remote: Compressing objects: 100% (5876/5876), done.
remote: Total 5995 (delta 2386), reused 0 (delta 0)
Receiving objects: 100% (5995/5995), 654.19 KiB | 2.10 MiB/s, done.
Resolving deltas: 100% (2386/2386), done.
SqlInstance Database Type TotalSize DeviceType Start Duration End
----
---
SRV1 AdventureWorks2017 Full 206,08 MB Disk 2019-11-20 08:12:32.000 00:00:01 2019-11-20 08:12:33.000
Restoring AdventureWorks2017 on SRV1\DEV...
ComputerName : SRV1
InstanceName : DEV
SqlInstance : SRV1\DEV
BackupFile : D:\DBBACKUP\AdventureWorks2017_201911200812.bak
BackupFilesCount : 1
BackupSize : 206,08 MB
CompressedBackupSize : 206,08 MB
Database : AdventureWorks2017
Owner : XXXX\xxxxxx
DatabaseRestoreTime : 00:00:01
FileRestoreTime : 00:00:01
NoRecovery : False
RestoreComplete : True
RestoredFile : AdventureWorks2017.mdf,AdventureWorks2017_log.ldf
RestoredFilesCount : 2
Script : {RESTORE DATABASE [AdventureWorks2017] FROM DISK = N'D:\DBBACKUP\AdventureWorks2017_201911200812.bak' WITH FILE = 1, MOVE N'AdventureWorks2017' TO N'C:\Program Files\Microsoft SQL
Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017.mdf', MOVE N'AdventureWorks2017_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017_log.ldf', NOUNLOAD,
REPLACE, STATS = 10}
RestoreDirectory : C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA
WithReplace : True
Removing orphaned users..
Cloning GIT repository...
[/code:1]
et voici l'output tel qu'il devrait être logiquement (en suivant l'ordre des commmandes):
[code:1]Backup database AdventureWorks2017 from SRV1...
SqlInstance Database Type TotalSize DeviceType Start Duration End
----
---
SRV1 AdventureWorks2017 Full 206,08 MB Disk 2019-11-20 08:12:32.000 00:00:01 2019-11-20 08:12:33.000
Restoring AdventureWorks2017 on SRV1\DEV...
ComputerName : SRV1
InstanceName : DEV
SqlInstance : SRV1\DEV
BackupFile : D:\DBBACKUP\AdventureWorks2017_201911200812.bak
BackupFilesCount : 1
BackupSize : 206,08 MB
CompressedBackupSize : 206,08 MB
Database : AdventureWorks2017
Owner : XXXX\xxxxxx
DatabaseRestoreTime : 00:00:01
FileRestoreTime : 00:00:01
NoRecovery : False
RestoreComplete : True
RestoredFile : AdventureWorks2017.mdf,AdventureWorks2017_log.ldf
RestoredFilesCount : 2
Script : {RESTORE DATABASE [AdventureWorks2017] FROM DISK = N'D:\DBBACKUP\AdventureWorks2017_201911200812.bak' WITH FILE = 1, MOVE N'AdventureWorks2017' TO N'C:\Program Files\Microsoft SQL
Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017.mdf', MOVE N'AdventureWorks2017_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA\AdventureWorks2017_log.ldf', NOUNLOAD,
REPLACE, STATS = 10}
RestoreDirectory : C:\Program Files\Microsoft SQL Server\MSSQL14.DEV\MSSQL\DATA
WithReplace : True
Removing orphaned users..
Cloning GIT repository...
Cloning into 'D:\RepoGIT'...
remote: Counting objects: 5995, done.
remote: Compressing objects: 100% (5876/5876), done.
remote: Total 5995 (delta 2386), reused 0 (delta 0)
Receiving objects: 100% (5995/5995), 654.19 KiB | 2.10 MiB/s, done.
Resolving deltas: 100% (2386/2386), done.
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 4 ans 4 mois #29459
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Mauvais ordre affichage des commandes
Salut,
sdub écrit:
Write-Output est destiné à l'émission de données pas à l'affichage d'informations, write-host étant préférable, quoique ...
Le pb ici est l'usage de deux flux, donc l'un est synchrone l'autre asynchrone.
La lecture de l'ordre d'affichage dans le script est donc trompeur.<br><br>Message édité par: Laurent Dardenne, à: 20/11/19 18:28
sdub écrit:
Git, prg externe, adresse l'écran et PS un pipeline dont le contenu est émis sur la console en fin de traitement.Pourriez-vous m'éclairer sur ce comportement ?
Write-Output est destiné à l'émission de données pas à l'affichage d'informations, write-host étant préférable, quoique ...
Le pb ici est l'usage de deux flux, donc l'un est synchrone l'autre asynchrone.
La lecture de l'ordre d'affichage dans le script est donc trompeur.<br><br>Message édité par: Laurent Dardenne, à: 20/11/19 18:28
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.061 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Mauvais ordre affichage des commandes