gpt4 book ai didi

powershell - Powershell入门帮助-重写旧的BAT + SQL文件

转载 作者:行者123 更新时间:2023-12-03 00:55:22 25 4
gpt4 key购买 nike

我对Powershell完全陌生,并且需要一些帮助才能上手。
我需要编写一个小的脚本来备份SQL数据库,但是每次都使用不同的名称(仅保留最后的4-5版本)。
现在我有一个BAT,它仅使用sql脚本启动osql,如下所示

REM BAT file starts here
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -S myServer -E -iC:\Scripts\backupDB.sql

备份脚本是
BACKUP DATABASE [MyDB] TO  DISK = N'C:\Backup\MyDB.bak' WITH NOFORMAT, INIT,  NAME = N'MyDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

该BAT由任务计划程序运行。显然,它不会创建其他数据库备份文件。
我想要用powershell脚本替换整个内容,该脚本将在目标目录中查找并仅保留最后N个备份文件(从最新的开始),然后生成一个备份文件名,例如
MyDB-yy.mmdd.hhmmss.bak 

然后备份。

我可以创建一个简单的C#控制台应用程序来执行此操作,但是我想开始使用Powershell进行播放和测试。

任何帮助表示赞赏。

谢谢

最佳答案

这样的事情应该起作用:

if (Test-Path C:\Backup\MyDB.bak)
{
Rename-Item C:\Backup\MyDB.bak `
("C:\Backup\MyDB-{0:yy.MMdd.hhmmss}.bak" -f (get-date))
}

Get-ChildItem C:\Backup\MyDB-*.bak | Sort Name -Desc | Select -skip 5 |
Remove-Item

$osql = "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe"
& $osql -S myServer -E -iC:\Scripts\backupDB.sql

关于powershell - Powershell入门帮助-重写旧的BAT + SQL文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1711053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com