2013-10-04 108 views
2

我很新的.bat文件!但一个快速学习者。时间.bat文件运行时间

我是一名工程学学生,正在使用波浪模拟模型。我需要计算时间,并试图通过在运行模拟之前设置一个变量StartTime=%time%来完成此任务,并且在模拟结束之后,我设置了EndTime=%time%,并用此计算计算时间。我通过打开.bat文件swashcmd.bat并使用我的输入文件file_name.sws然后使用命令swashrun file_name.sws将目录更改为文件夹来运行模型。

我试图让我从swashcmd.bat

@echo off 

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

set StartTime=%time% 

swashrun a11stw01 

echo Computation done 

set EndTime=%time% 

这改变了目录,并运行模拟运行.bat文件,但我不能确认任何事情之后进行。

我试图创建一个打开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)更好? (为什么) ^

Opdate 1

使用呼叫

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

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

停止呼叫swashcmd.bat

Opdate 2

打过电话从swashcmd.bat我.bat文件与cal后。没有存储EndTime。在保存开始和结束时间时,扩展bat文件以将星号和结束时间输出到.txt文件。

+2

'getTimestamp.bat'是一个辅助批处理文件来操作和测量各种时间和日期变量,并可以在这里找到 - http://www.dostips.com/forum/viewtopic .php?p = 27422#p27422它可以以各种方式计算流逝的时间。如果你的波浪模拟大约在5到10秒内,那么运行批处理文件的延迟就成了一个问题。 – foxidrive

+0

如果'swashrun'也是一个批处理文件,你需要使用'call'命令执行它,以便执行返回到'swashcmd'和'set EndTime = ...'最终被执行。此外,您存储两次,但从来没有显示它们(或者看起来是这样)。 –

回答

1

试试这个,看看有什么是显示在屏幕上,并在达到暂停命令:

@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 
+0

'swashcmd.bat'被调用,但'starttime'和'endtime'不存储,并没有达到暂停。 –

+0

东西在'swashcmd.bat'是问题,如果没有错误在屏幕上。 swashrun也是一个批处理文件吗?如果是,则使用'呼叫swashrun a11stw01' – foxidrive

+0

看到我的编辑答案 – foxidrive

3

使用

CALL swashcmd.bat 

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