【问题标题】:Powershell check if file exists [duplicate]Powershell检查文件是否存在[重复]
【发布时间】:2020-09-08 15:16:09
【问题描述】:

我通过 SSIS 进程任务调用了以下 PowerShell 脚本,以检查文件是否被锁定 - 如何修改以便首先检查文件是否存在。

  • 如果不存在,则用999退出

  • 如果确实存在但被锁定,则使用 999 退出

  • 如果确实存在且未锁定,则以0退出

    $file = "\\xxxxxx\xxxx\xxxxx\xxxxxxxxx\task_status.log"    
    try { [IO.File]::OpenWrite($file).close();exit 0 } catch { exit 999}
    

【问题讨论】:

标签: powershell


【解决方案1】:
$file = "\\xxxxxx\xxxx\xxxxx\xxxxxxxxx\task_status.log"
if (Test-Path -path $file)
{ 
    try { [IO.File]::OpenWrite($file).close();return 0 } catch { return 999}
}
else
{
    return 999
}

【讨论】:

  • 如果文件存在但未锁定,我没有得到 0?
  • 如果文件存在,它将使用旧的 try/catch 并使用与以前相同的代码退出。如果文件不存在,它将返回 999。
  • 如果文件存在且未锁定,为什么我没有得到 0?我在 Powershell 中试过了
  • 实际上,如果我在 MS Word 中打开日志,它不起作用 - 我应该期待看到 999?它只是在 Powershell 中不返回任何内容
  • 尝试将出口 0 和出口 999 更改为返回 0 和返回 999。
猜你喜欢
  • 1970-01-01
  • 2015-10-31
  • 2012-01-25
  • 2012-05-26
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多