【问题标题】:Output redirection locking file输出重定向锁定文件
【发布时间】:2020-11-20 19:42:00
【问题描述】:

我有一个简单的批处理脚本来测试一个 exe 应用程序。 start 命令将“main.exe”输出重定向到 txt 文件。当exe不起作用时,脚本运行良好。问题是当 exe 成功运行时,似乎 test.txt 被锁定。得到的错误如下::

“该进程无法访问该文件,因为它正被另一个进程使用。”

下面是脚本。

@echo %date% 1> test.txt
@start "" "cmd /c .\dist\main\main.exe 1>> test.txt 2>&1"
@timeout /t 10
@taskkill /f /im main.exe 1>> test.txt 2>&1

即使在杀死 main.exe 进程后,test.txt 仍然处于锁定状态。有什么办法可以解锁test.txt?

【问题讨论】:

  • 你为什么用start运行cmd运行.exe文件?这里不需要cmd,可能是锁文件的进程……
  • 如果main.exe 运行时间超过十 (10) 秒,目标是否会杀死它?

标签: batch-file cmd


【解决方案1】:

main.exe 锁定文件。如果在 10 秒超时后,main.exe 仍在运行,则文件仍处于锁定状态,因此 taskkill 无法打开它,因此会失败。

尝试将taskkill 重定向到其他文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2012-09-12
    • 2016-08-09
    • 2013-10-11
    • 2016-11-27
    • 2023-03-19
    • 2020-08-03
    相关资源
    最近更新 更多