需要 powershell 脚本从 T-SQL 压缩文件

Posted

技术标签:

【中文标题】需要 powershell 脚本从 T-SQL 压缩文件【英文标题】:Need powershell script to zip files from T-SQL 【发布时间】:2019-12-17 13:02:58 【问题描述】:

对于 Windows Server 2012 上的 SQL Server 2014,我需要运行一个 T-SQL 命令,该命令在 PowerShell 中运行一个脚本来压缩文件。这不是一个简单的 zip,所以一个名为 1204444.sav 的文件需要根据我在 T-SQL 语句中获取的变量重命名(我可以处理这个),所以这个文件可能会重命名 ~TEMPDSJDKSS823918

【问题讨论】:

到目前为止你的代码是什么样子的? 很抱歉错过了这不是一个 powershell 家伙,只是 dba/devloper/其他所有东西。我在代码中定义了变量,因此要更改的文件名和要压缩的文件名都已完成,从 tsql 示例调用 PS 代码的任何特别之处看起来都非常简单 我相信你应该看看 xp_cmdshell -docs.microsoft.com/en-US/sql/relational-databases/… 。首先,您需要使用所有需要的参数构造命令行,然后将其作为参数传递。 我得到了关于命令外壳的部分,就像我说的 PS 方面的弱点 我请这位尊贵的先生回答我最初的问题,大约 60 分钟前发布。 【参考方案1】:

我不能说 SQL 方面的事情,但是您可以通过以下方式从 PowerShell 创建 ZIP 文件:

powershell.exe -Command "Compress-Archive -Path C:\path\to\file\to\compress.txt" -DestinationPath "C:\path\to\archive.zip"

这需要 PowerShell 5.0。您可以通过打开一个交互式窗口并检查 $PSVersion 变量来检查您安装的 PowerShell 版本。

【讨论】:

以上是关于需要 powershell 脚本从 T-SQL 压缩文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 T-SQL,从字符串中返回第 n 个分隔元素

使用参数从 Powershell 脚本运行可执行文件

如何从 PowerShell 脚本触发 T4 模板

sql 高级T-SQL脚本(从这里和他们收集)

需要Powershell脚本帮助

powershell脚本隐藏退出码