[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[新手习题]批处理计算程序打开花了多少时间

仅仅是新手习题,考察大家对批处理的熟悉程度,没有算法,高手无视此题叭~

有一些时候因为某些特殊原因,需要获取某个程序打开的速度----也就是说一个程序,从双击打开,到完全加载完成,再完全关闭所经过的总时间.
于是乎,有的同学捧着秒表计时,高级一点的用系统自带的"日期和时间"来计时.这两种方法不仅累人,而且有较大误差,最最鸡肋的是,有些程序貌似关闭了,其实还要在"任务管理器"中喝会儿茶呢(devenv.exe和QQ家族就是如此)
那能不能使用简单的批处理语句,输出打开时间与关闭时间呢?
提示和要求:
  1. 1.
  2.    可以保证任何输入或文件全部正确,也就是不需要容错(能加入支持最好~)
  3. 2(可选).
  4.    提供两种模式输入:第一种是将exe文件拖曳到批处理文本上(提示:%1);第二种是在直接打开批处理时,提示输入exe文件位置,并且输入后自动清屏
  5. 3.
  6.    批处理自动运行程序(提示:在此之前记录打开时间),在完全打开后不需要自动关闭程序
  7. 4.
  8.    对于打开时间(提示:%time%)和关闭时间,仅输出时,分,秒,毫秒,毫秒必须有三位,但是最后一位可以不准确(也就是精确到0.01毫秒)
  9. 5.
  10.    输出要测试文件名称,路径可加可不加
  11. 6.
  12.    在输出完成后暂停(没有提示),以便记录
复制代码
输出示例:
  1. 文件:D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
  2. 打开时间:13:51:49.511
  3. 关闭时间:13:51:53.191
复制代码
如果没有思路,可以看看下面这个帖子:
http://bbs.bathome.net/thread-5659-1-1.html

[ 本帖最后由 Seter 于 2009-9-19 14:33 编辑 ]

理论上,用 start命令 启动要运行的程序,在start 前后分别显示 %time% 变量就可以了。

把下面内容编辑成一个cmd 批处理,然后把要运行的程序拖放到该批处理就可以了。
多谢 4楼指导,现已精简。

@ECHO OFF
if %1*==* goto error1
echo 文件:%1
SET NAME=%~1
:top
echo 开始时间:%time%
start /wait "" "%name%"
echo 关闭时间:%time%
goto end
:error1
echo 没有指定运行的程序。
:end
pause

[attach]1805[/attach]

[ 本帖最后由 DXSX 于 2009-8-26 19:53 编辑 ]
1

评分人数

TOP

为啥不评分?555555

TOP

2L的方案过于麻烦 没有掌握cmd的线程处理机制

TOP

start可以启动带空格和长文件名
start /wait "" "路径"
这个问题提了很多次了。。。
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

多谢 楼上2位老大指点

TOP

  1. @echo off
  2. :a
  3. cls
  4. set /p c=请输入路径:
  5. if "%c%"=="" goto a
  6. set a="%time%"
  7. start /wait "" ""%c%""
  8. set b="%time%"
  9. echo 所属路径:%c%
  10. echo 打开时间:%a%
  11. echo 关闭时间:%b%
  12. pause>nul
复制代码

[ 本帖最后由 canyuexiaolang 于 2009-9-19 15:22 编辑 ]

TOP

@echo off
set /p ver=请输入程序路径,或直接拖拽到批处理窗口,按回车执行:
echo.程序开始运行%time%
set var=%time%
start /w "" %ver%
set vsr=%time%
cls
echo.文件:%ver%
echo.打开时间%var%
echo.关闭时间%vsr%
pause>nul

本人新手  希望多多指点

[ 本帖最后由 kisyan 于 2009-10-11 02:08 编辑 ]
1

评分人数

    • Seter: 很好!,但是start后的%ver%最好加个引号以支 ...PB + 5

TOP

等等...你的%ver%作为参数...没看清楚...
我习惯加引号 (*^__^*)

TOP

返回列表