【问题标题】:How to create dynamic powershell query?如何创建动态PowerShell查询?
【发布时间】:2012-02-09 09:22:30
【问题描述】:

我有一个 Powershell 查询来获取我的数据库的备份。但是我需要备份具有不同名称的数据,例如 DATABASEBACKUP_CURRENTDATE。我怎样才能做到这一点?

./RedGate.SQLAzureBackupCommandLine.exe /as: AzureServerNAME/ad: AzureDatabaseName    /au:AzureUserName /ap:AzurePassword /cc /s /ls:. /ld:LOCALDATABASENAME_CURRENTDATE /dl /v /ba

【问题讨论】:

    标签: powershell redgate


    【解决方案1】:

    首先,构建一个包含当前日期的字符串:

    $backupName = $("Backup-{0}" -f [DateTime]::Now.ToString("yyyy-MM-dd"))
    

    然后调用 RedGate 并使用日期字符串作为参数:

    ./RedGate.SQLAzureBackupCommandLine.exe /as: AzureServerNAME /ad: AzureDatabaseName /au:AzureUserName /ap:AzurePassword /cc /s /ls:. /ld:$backupName /dl /v /ba
    

    Ed:复制粘贴/标记弄乱了括号和冒号,修复了它们。

    【讨论】:

    • 当我尝试创建字符串时,Now.ToString("yyyy-MM-dd") 出现错误。您必须在“-f”运算符的右侧提供一个值表达式。在 line:1 char:32 + $backupName = $("Backup-{0}" -f
    【解决方案2】:

    要获取使用当前日期构造的字符串,您可以这样做:

    "DATABASEBACKUP_{0:MM-dd-yyyy}" -f [DateTime]::Now
    

    它会给出类似DATABASEBACKUP_01-12-2012 的信息。您可以根据需要将其用作参数

    【讨论】:

      【解决方案3】:

      抛出另一个解决方案...

      "DATABASEBACKUP_$(Get-Date -Format MM-dd-yyyy)"

      【讨论】:

        猜你喜欢
        • 2018-10-27
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        • 2021-09-09
        • 2021-01-10
        • 1970-01-01
        • 2012-12-12
        • 2015-10-01
        相关资源
        最近更新 更多