如何在同一个批处理文件中获取批处理文件使用的RAM

时间:2017-07-03 11:20:52

标签: windows batch-file cmd

我想创建一个批处理文件,在运行时显示它在窗口标题中使用的内存(RAM)。我使用wmic命令尝试了以下代码,但它无法正常工作

void Mesh::Move(Move_Directions direction, GLfloat deltaTime) {
GLfloat velocity = 50 * this->movementSpeed * deltaTime;
if (direction == FORWARD) {
    glm::vec3 t = glm::vec3(sin(glm::radians(yaw)), 0.0, cos(glm::radians(yaw))) * velocity;
    matrix = glm::translate(matrix, t);
    for (GLuint i = 0; i < this->m_Entries.size(); i++) {
        this->m_Entries[i].setModelMatrix(matrix);
    }
    //scene->getDefCamera()->Translate(t);
}
if (direction == BACKWARD) {
    glm::vec3 t = glm::vec3(sin(glm::radians(yaw)), 0.0, cos(glm::radians(yaw))) * velocity;
    matrix = glm::translate(matrix, -t);
    for (GLuint i = 0; i < this->m_Entries.size(); i++) {
        this->m_Entries[i].setModelMatrix(matrix);
    }
    //scene->getDefCamera()->Translate(t);
}
if (direction == RIGHT) {
    matrix = glm::rotate(matrix, (GLfloat) -M_PI*deltaTime, glm::vec3(0.0, 1.0, 0.0));
    for (GLuint i = 0; i < this->m_Entries.size(); i++) {
        this->m_Entries[i].setModelMatrix(matrix);
    }
}
if (direction == LEFT) {
    matrix = glm::rotate(matrix, (GLfloat) M_PI*deltaTime, glm::vec3(0.0, 1.0, 0.0));
    for (GLuint i = 0; i < this->m_Entries.size(); i++) {
        this->m_Entries[i].setModelMatrix(matrix);
    }
}
}

执行wmic命令时,会显示错误消息:

  

缺少运营商

窗口的标题是

  

任务终止 - 执行次数:1,mem:0

如果我在批处理文件开始运行后在新的命令提示符窗口中单独运行wmic命令,则会显示错误:

  

没有可用的实例。

1 个答案:

答案 0 :(得分:0)

作为WMIC如何不为您提供准确的数字或可能信任的示例,请查看以下示例脚本:

<?= $form->field($model, 'sex')->dropDownList(
            ['0' => 'Male',
            '1' => 'Female']
   ) ?>

您会注意到有两个输出,一个来自脚本的初始调用,另一个来自WMIC命令部分。我最初的想法是,第一个数字将是两个中较小的一个,因此是你需要的数字。不幸的是,虽然这个数字并不总是较小,但可能不是你需要的那个。

还值得注意的是,find.exe和timeout.exe等内置命令都可能会在批处理文件外部注册不同的数字,因此不会包含在这些返回的数字中

修改

以下版本忽略了上述建议,并将工作集大小保存为@Echo Off For /F "Delims=" %%A In (' "WMIC Process Where (Name='cmd.exe') Get CommandLine, WorkingSetSize|Find /I %0" ') Do For /F Tokens^=4Delims^=^" %%B In ("%%A") Do For %%C In (%%B) Do Echo( [%%C] Timeout -1

%WSS%