我正在编写一个小脚本来备份我的所有sql数据库,它们的名称略有不同所以我需要这个函数,它首先将文件命名为我。 因为我已经有为每个sql db运行的脚本,我只需要在这个命令行中更改backupfilename:
USE [master]
RESTORE DATABASE [PMI_MIP_PMI] FROM DISK = N'D:\backups\db1.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 50
GO
To go for that I thought about outfiling the special dbname from the backup :
function getbackupfile
{
get-childitem "$backupfolder" | Where-Object {$_.Name -like "*db1*" } | Where-Object {$_.extension -eq ".bak"} | select-object Name
}
getbackupfile | out-file“c:\ backups \ lol.txt”
我在文件中收到的是:
db1.bak
我需要的只是'db1.bak'而没有像'name'那样的东西
答案 0 :(得分:1)
使用Select -Expand Name
,它只会为您提供该属性值,而不是包含所有请求属性的对象。
对于你的其他评论,请使用:
# Stores the value of Name in variable DBName
... | Select -Expand Name -OutVariable DBName
# Same thing, indirectly
$DBVarName = "DBName"
... | Select -Expand Name -OutVariable $DBVarName