我的脚本正在备份多个SQL Server数据库,并且我将其将每个数据库和文件名输出到日志文件。我不确定如何以列格式对齐它们。
Function LogWrite
{
Param ([string]$logstring)
Add-content $Logfile -value $logstring
}
$server = new-object ("Microsoft.SQLServer.Management.Smo.Server") "(Local)\sqlexpress"
$databases = $server.databases
$array = @($db1,$db2,$db3,$db4,$db5,$db6,$db7,$db8,$db9,$db10,$db11)
foreach ($element in $array)
{
foreach ($db in $databases)
{
if($db.Name -like $element)
{
$dbname = $db.Name
$dateTime = get-date -format yyyy_MM_dd
$fullBackupFilePath = ($backupDirectory + "\" + $dbname + "_FULL_" + $dateTime + ".bak")
Backup-SQLDatabase -ServerInstance $sqlServer -Database $dbname -BackupFile $fullBackupFilePath
LogWrite "$dbname - $backupDirectory"
}
}
}
这是当前的样子:
Databases Succesfully Backed Up:
Aqm C:\Mappa_Backup\FULL
Atlas C:\Mappa_Backup\FULL
halive C:\Mappa_Backup\FULL
hatrafficinfo C:\Mappa_Backup\FULL
jtr C:\Mappa_Backup\FULL
jtr2 C:\Mappa_Backup\FULL
mappa C:\Mappa_Backup\FULL
mtf C:\Mappa_Backup\FULL
PartOneClaims C:\Mappa_Backup\FULL
ptfeedback C:\Mappa_Backup\FULL
The following files were deleted as they were older than 14 days:
Aqm_FULL_2015_08_19.bak
Atlas_FULL_2015_08_19.bak
halive_FULL_2015_08_19.bak
hatrafficinfo_FULL_2015_08_19.bak
jtr2_FULL_2015_08_19.bak
jtr_FULL_2015_08_19.bak
mappa_FULL_2015_08_19.bak
mtf_FULL_2015_08_19.bak
PartOneClaims_FULL_2015_08_19.bak
ptfeedback_FULL_2015_08_19.bak
最佳答案
另一个简单的选择是使用.NET格式指令,例如:
LogWrite ("{0,20} - {1,-60}" -f $dbname,$backupDirectory)
格式说明符为
{<placeholder-number>,[- for left-align]<field-width>}
。关于powershell - 格式日志输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32099566/