【问题标题】:Windows Command Processor Memory Usage continuously increasing problem. (Batch File)Windows 命令处理器内存使用不断增加的问题。 (批处理文件)
【发布时间】:2021-07-31 15:00:14
【问题描述】:

我在下面有一个批处理文件

    @echo off
:count
set /p output=<time.txt

:start
timeout /t 2
set /a out=%output%+2
:cut
echo %out% > time.txt

(call :code%out%)>nul 2>&1
if errorlevel 1 goto end

:code2
REM DESKTOP
pushd "C:\Users\Eliaz\Desktop\"
start "" "AutoHotkey.exe" "C:\Users\Eliaz\Desktop\DESKTOPCALLER.ahk"
popd & exit /b
goto start

:code4
REM IMPORT
pushd "D:\IMPORT\"
start "" "AutoHotkey.exe" "D:\IMPORT\IMPORTCALLER.ahk"
popd & exit /b
goto start

:code6
REM UNSORTED
pushd "D:\UNSORTED"
start "" "AutoHotkey.exe" "D:\UNSORTED\UNSORTEDCALLER.ahk"
popd & exit /b
goto start

end:
if %out%==8 (
set out=0
goto cut
) else (
goto start
)

每次我运行这个批处理文件时,它的内存使用率都很低USAGE IMAGE HERE 当我让它运行至少 10 分钟时会出现问题,因为 Windows 命令处理器内存使用量不断增加。 USAGE IMAGE HERE。我有点担心,因为我必须运行批处理文件至少 6 小时。我该如何解决这个 Windows 命令处理器内存使用不断增加的问题?

【问题讨论】:

  • push?我确定我在other post 中告诉过你pushd,我建议改为start "" autohotkey.exe。并不是说我真的认为 50mb 的利用率是个问题。您需要运行更长时间才能查看它是否继续增长。
  • 哦,抱歉打错了。应该推。这两者有什么区别?即使有错字,它仍然可以正常运行。
  • 另外,以前的批处理文件也有同样的问题,只是慢了很多。另一个在 10 分钟内达到 150Mb 利用率。
  • 因为您在 autohotkey 命令中指定了完整路径。因此,您实际上可以完全删除 pushdpopd。就像我说的,将你的命令也改为start "" "AutoHotkey.exe" "D:\IMPORT\IMPORTCALLER.ahk"
  • 为了让人们帮助你,你应该解释你的代码应该做什么,(没有这些信息,人们应该如何优化它)。此外,您应该至少向我们提供一些关于您的每个 AHK 脚本在做什么的指示。从我最初阅读您的整个脚本来看,这没有意义。

标签: loops batch-file memory


【解决方案1】:

(call :code%out%)&gt;nul 2&gt;&amp;1 部分需要在代码中的某处使用 exit /b
但目前你只是使用goto :count

【讨论】:

  • @Gerhard - 哦,现在我明白了。我以为我不需要退出/ b。这会返回电话吗?
  • 另外,我还能在popd &amp; exit /b 下方添加goto start。如果没有 goto,控制台就会退出。
  • @EliazarInso 去看看other question底部的编辑代码,请让我们在这里清理cmets。
【解决方案2】:

为了更好地向您展示 jeb 的回答告诉您什么,它似乎是 Calling 标记的部分,但永远不会从那些 Calls 中返回。:

Call :code2
    Run "C:\Users\Eliaz\Desktop\DESKTOPCALLER.ahk"
    Call :code4
        Run "D:\IMPORT\IMPORTCALLER.ahk"
        Call :code6
            Run "D:\UNSORTED\UNSORTEDCALLER.ahk"
            Call :code0 {ErrorLevel 1}
                Call :code2
                    Run "C:\Users\Eliaz\Desktop\DESKTOPCALLER.ahk"
                    Call :code4
                        Run "D:\IMPORT\IMPORTCALLER.ahk"
                        Call :code6
                            Run "D:\UNSORTED\UNSORTEDCALLER.ahk"
                            Call :code0 {ErrorLevel 1}
                                Call :code2
                                    Run "C:\Users\Eliaz\Desktop\DESKTOPCALLER.ahk"
                                    Call :code4
                                        Run "D:\IMPORT\IMPORTCALLER.ahk"
                                        Call :code6
                                            Run "D:\UNSORTED\UNSORTEDCALLER.ahk"
                                            Call :code0 {ErrorLevel 1}
                                                Call :code2
                                                    Run "C:\Users\Eliaz\Desktop\DESKTOPCALLER.ahk"
                                                    Call :code4
                                                        Run "D:\IMPORT\IMPORTCALLER.ahk"
                                                        Call :code6
                                                            Run "D:\UNSORTED\UNSORTEDCALLER.ahk"
                                                            Call :code0 {ErrorLevel 1}
                                                                etc.

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多