【问题标题】:time .bat file run timetime .bat 文件运行时间
【发布时间】:2013-10-04 08:40:20
【问题描述】:

我对 .bat 文件非常陌生!但学得很快。

我是一名工科学生,正在研究波浪模拟模型。我需要计算计算时间,我试图通过在运行模拟之前设置一个变量StartTime=%time% 来做到这一点,在模拟结束后我设置EndTime=%time%,我想用这个来计算计算时间.我通过打开一个 .bat 文件 swashcmd.bat 并将目录更改为包含我的输入文件 file_name.sws 的文件夹,然后使用命令 swashrun file_name.sws 来运行模型。

我尝试制作一个我从swashcmd.bat 运行的 .bat 文件

@echo off

cd %USERPROFILE%\Dropbox\Bachelor\SWASH\testcases\Compiled\a11stwav

set StartTime=%time%

swashrun a11stw01

echo Computation done

set EndTime=%time%

这会更改目录并运行模拟,但我无法验证之后是否执行了任何操作。

我尝试制作一个打开 swashcmd.bat 并运行模拟的 .bat 文件

@echo off
cd C:\Program Files\swash\
swashcmd.bat

cd C:\Users\dk46739\Dropbox\Bachelor\SWASH\testcases\Compiled\a11stwav

这会启动swashcmd.bat,但不会更改目录。

我无法更改swashcmd.bat 中的任何内容。是否可以在不更改 swashcmd.bat 文件的情况下做我想做的事?哪种方式(从swashcmd.bat 运行.bat 或从.bat 运行swashcmd.bat)更好? (以及为什么) ^

更新 1

随叫随到

cd C:\Program Files\swash\
call swashcmd.bat

cd C:\Users\dk46739\Dropbox\Bachelor\SWASH\testcases\Compiled\a11stwav

调用swashcmd.bat后停止

更新 2

尝试使用calswashcmd.bat 调用我的.bat 文件。 EndTime 未存储。保存开始和结束时间时,扩展 bat 文件以将星号和结束时间输出到 .txt 文件。

【问题讨论】:

  • getTimestamp.bat 是一个辅助批处理文件,用于操作和测量各种时间和日期变量,可以在这里找到 - dostips.com/forum/viewtopic.php?p=27422#p27422,它可以以各种方式计算经过的时间。如果您的波形模拟大约需要 5 到 10 秒,那么运行批处理文件的延迟可能是个问题。
  • 如果swashrun也是一个批处理文件,你需要用call命令执行它,以便执行返回到swashcmd,最终执行set EndTime=...。此外,您同时存储了两次,但从不显示它们(或者看起来如此)。

标签: windows batch-file time


【解决方案1】:

使用

CALL swashcmd.bat

否则,控制权不会返回给调用者。

【讨论】:

    【解决方案2】:

    试试这个,看看屏幕上回显了什么,是否达到了暂停命令:

    @echo off
    cd /d "C:\Program Files\swash\"
    call swashcmd.bat
    echo "%starttime%"
    echo "%endtime%"
    echo pause 2
    pause
    cd /d "C:\Users\dk46739\Dropbox\Bachelor\SWASH\testcases\Compiled\a11stwav"
    

    也试试这个 - 告诉我们屏幕上是否有任何错误消息,以及是否达到了暂停命令:

    @echo off
    cd /d "%USERPROFILE%\Dropbox\Bachelor\SWASH\testcases\Compiled\a11stwav"
    set StartTime=%time%
    call swashrun a11stw01
    echo Computation done
    set EndTime=%time%
    echo pause 1
    pause
    

    【讨论】:

    • swashcmd.bat 被调用,但starttimeendtime 没有被存储并且没有达到暂停。
    • 如果屏幕上没有错误,swashcmd.bat 中的内容就是问题所在。 swashrun 也是批处理文件吗?如果是这样,请使用call swashrun a11stw01
    • 使用call swashrun %inputfile% 有效,谢谢!!开始和结束时间被存储,并且在没有任何错误的情况下达到暂停。
    猜你喜欢
    • 1970-01-01
    • 2021-11-23
    • 2021-04-28
    • 1970-01-01
    • 2012-03-08
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多