在 Windows 7 上运行后不久无法保存批处理文件

evi*_*inz 5 windows batch process

我正在处理 Windows 7 Ultimate 中的批处理文件。我正在使用带有 runme 扩展的 notepad++。

当我运行批处理文件并在此之后直接进行一些更改时,我无法保存 .bat 文件,因为 windows 说它已被另一个进程使用。

所以我需要等待大约 60 秒,直到我能够重新保存文件以测试更改。

使用内置记事本时也是如此。

奇怪的是我可以在运行后直接删除.bat文件,但保存不起作用。

几个月前,当我处理另一个批处理文件时,一切正常。

有没有办法阻止这种奇怪的行为?或者至少有什么方法可以查看哪个进程正在阻止文件?

and*_*415 8

解决方案

应用程序体验服务 ( AeLookupSvc) 被禁用时会出现问题:

如果应用程序体验服务已被禁用,[Windows] 资源管理器可能会长时间保持可执行文件句柄锁定。

来源:链接器工具错误 LNK1168

  1. 打开提升的命令提示符
  2. 键入或粘贴以下命令:

    sc config "AeLookupSvc" start= demand
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新启动 Windows。

附加信息

应用程序体验服务 ( AELookupSvc) 是应用程序兼容性管理器的一部分。它在应用程序启动时处理应用程序兼容性查找请求,为在兼容模式下运行程序的计算机提供支持,报告兼容性问题,并自动将软件更新应用于程序。

应用程序体验服务必须处于活动状态才能应用应用程序兼容性软件更新。您无法自定义此服务;操作系统在内部使用它。[...]

如果禁用应用程序体验服务,该服务将继续运行,但不会对该服务进行调用。您无法停止实际过程。

应用程序体验服务配置为手动启动。

来源:威胁与对策指南:系统服务

应用程序兼容性尝试检查 .EXE 文件在访问时是否需要任何应用程序兼容性垫片。这会导致系统获得文件的句柄。系统将查找请求排队到应用程序体验( AeLookupSvc) 服务,但由于该服务被禁用,该请求未及时得到服务并且该文件[无法访问],因为它正在使用中。两分钟后,对Application Experience服务的排队请求超时并被丢弃,释放句柄。

来源:复制 .EXE 文件可能会导致共享冲突错误 - 正在使用的文件夹

  • @evilheinz 是的,我曾经错误地禁用了相同的服务,并且遇到了同样的问题。无论如何,如果您想通过 GUI 调整服务,请避免使用 `msconfig.exe` 并改用 `services.msc`。这样您将无法禁用关键服务,并且您可以更好地控制启动类型和其他设置,而系统配置实用程序只能禁用或重新启用服务。 (3认同)