【问题标题】:CMDExec if exists then stopCMDExec 如果存在则停止
【发布时间】:2017-04-14 18:20:39
【问题描述】:

我需要在 SQL 作业中执行步骤以检查某个路径上是否有文件,因此如果有文件则停止进一步执行。类似的东西:

$file = "\\networklocation\file.bak"
if (-exists (Test-Path $file)) 
{
    throw "$file not found."
}

【问题讨论】:

    标签: file powershell cmd exists sql-job


    【解决方案1】:

    Test-Path cmdlet 返回布尔值,您就快到了:

    $file = "\\networklocation\file.bak"
    if (Test-Path $file)
    {
        throw "$file not found."
    }
    

    【讨论】:

      【解决方案2】:

      只需省略-exists 开关并确保将$ErrorActionPreference 设置为stop

      $ErrorActionPreference = 'stop'
      $file = "\\networklocation\file.bak"
      if (Test-Path $file) 
      {
          throw "$file found."
      }
      

      【讨论】:

      • 呃...如果文件确实存在,我想他想停止。
      • @WalterMitty 你是对的。将编辑我的答案 - 只是想知道如果文件不存在他为什么会抛出异常(那是他所期望的实际状态)......
      • 好吧,解释一下。该机制有一些备份/恢复工作: 1. 从 prod 备份 2. 在办公区恢复它 3. 删除可以根据用户请求再次完成的备份文件。不是我的逻辑家伙
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-25
      • 2010-11-26
      • 2021-11-20
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      相关资源
      最近更新 更多