bibi92
asked on
concatene variable and join with comma
Hello
I search to build $FROMCLAUSE DISK = N'\\nas\backup\Gdete.20160 330_124543 .1_3.dmp', DISK= N'\\nas\backup\Gdete.20160 330_124543 .2_3.dmp', DISK= N'\\nas\backup\Gdete.20160 330_124543 .3_3.dmp'
$DumpDir="\\nas\backup"
$BackupFileList = @(Invoke-SQLCmd -query "set nocount on; SELECT physical_device_name FROM msdb.dbo.backupmediafamily CROSS JOIN (SELECT max_value = MAX(media_set_id) FROM msdb.dbo.backupset b where b.type = 'D' and database_name = 'gdete') m WHERE media_set_id = max_value" -Server test\srv)
Foreach($file in $BackupFileList){$Dumpfile List += @([System.IO.Path]::GetFil eName($fil e.physical _device_na me))}
The result is
Gdete.20160330_124543.1_3. dmp
Gdete.20160330_124543.2_3. dmp
Gdete.20160330_124543.3_3. dmp
I try this :
$FROMCLAUSE=($DumpfileList |Select-object @{name="file.physical_devi ce_name";e xpression= {"DISK = N'"+$dumpdir+$file.physica l_device_n ame +"'"}} | Select -ExpandProperty file.physical_device_name) -join ","
But the result is not correct
DISK = N'\\nas\backupN:\MSSQL\bac kup\Gdat.2 0160330_12 4543.3_3.d mp',DISK = N'\\nas\backupN:\MSSQL\bac kup\Gdat.2 0160330_12 4543.3_3.d mp', DISK = N'\\nas\backupN:\MSSQL\bac kup\Gdat.2 0160330_12 4543.3_3.d mp'
How can I resolve ?
Thanks
Regards
I search to build $FROMCLAUSE DISK = N'\\nas\backup\Gdete.20160
$DumpDir="\\nas\backup"
$BackupFileList = @(Invoke-SQLCmd -query "set nocount on; SELECT physical_device_name FROM msdb.dbo.backupmediafamily
Foreach($file in $BackupFileList){$Dumpfile
The result is
Gdete.20160330_124543.1_3.
Gdete.20160330_124543.2_3.
Gdete.20160330_124543.3_3.
I try this :
$FROMCLAUSE=($DumpfileList
But the result is not correct
DISK = N'\\nas\backupN:\MSSQL\bac
How can I resolve ?
Thanks
Regards
ASKER
Yes thanks
ASKER
I try this :
$DumpfileList -join ","
But it does not work.
Thanks
Regards
$DumpfileList -join ","
But it does not work.
Thanks
Regards
Try this:
$FROMCLAUSE=($DumpfileList |select @{n='path';e={$_.physical_device_name.Replace('N:\MSSQL','DISK = N''\\nas\backup') + "'"}} | select -ExpandProperty path) -join ","
ASKER
Sorry it is not the result, the goal is only to concatene and join with a comma DISK = N'\\nas\backup\Gdete.20160 330_124543 .1_3.dmp', DISK= N'\\nas\backup\Gdete.20160 330_124543 .2_3.dmp', DISK= N'\\nas\backup\Gdete.20160 330_124543 .3_3.dmp'
Thanks
Regards
Thanks
Regards
OK, what is the output you're getting and what would you like it to be?
ASKER
I don't want to Replace('N:\MSSQL','DISK = N''\\nas\backup') + "'"}}, these value can be change.
ASKER
and the result is empty. Thanks regards
Sorry but without being able to construct the path from logic or having it consistent, there's no way to do this. Powershell cannot guess the path you may want. It needs to be able to get that information from somewhere.
and the result is empty.So the $FROMCLAUSE variable is empty?
ASKER
yes the $FROMCLAUSE variable is empty ;
$DumpDir="\\nas\backup"
$BackupFileList = @(Invoke-SQLCmd -query "set nocount on; SELECT physical_device_name FROM msdb.dbo.backupmediafamily CROSS JOIN (SELECT max_value = MAX(media_set_id) FROM msdb.dbo.backupset b where b.type = 'D' and database_name = 'gdete'
Foreach($file in $BackupFileList){ $DumpfileList += @( "DISK = N'"+$DumpDir + "\" + [System.IO.Path]::GetFileN ame($file. physical_d evice_name ) + "'") }
echo $Dumpfilelist
DISK = N'\\nas\backup\Gdete.20160 330_124543 .1_3.dmp'
DISK = N'\\nas\backup\Gdete.20160 330_124543 .2_3.dmp'
DISK = N'\\nas\backup\Gdete.20160 330_124543 .3_3.dmp'
so it is not possible to concatene $DumpfileList with comma for having
DISK = N'\\nas\backup\Gdete.20160 330_124543 .1_3.dmp', DISK = N'\\nas\backup\Gdete.20160 330_124543 .2_3.dmp', DISK = N'\\nas\backup\Gdete.20160 330_124543 .3_3.dmp'
Thanks
regards
$DumpDir="\\nas\backup"
$BackupFileList = @(Invoke-SQLCmd -query "set nocount on; SELECT physical_device_name FROM msdb.dbo.backupmediafamily
Foreach($file in $BackupFileList){ $DumpfileList += @( "DISK = N'"+$DumpDir + "\" + [System.IO.Path]::GetFileN
echo $Dumpfilelist
DISK = N'\\nas\backup\Gdete.20160
DISK = N'\\nas\backup\Gdete.20160
DISK = N'\\nas\backup\Gdete.20160
so it is not possible to concatene $DumpfileList with comma for having
DISK = N'\\nas\backup\Gdete.20160
Thanks
regards
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks a lot regards
Should $FROMCLAUSE be a string that contains the following in it?
DISK = N'\\nas\backup\Gdete.20160