首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么判断一个bat文件是否已执行结束

2012-03-25 
如何判断一个bat文件是否已执行结束何判断一个bat文件是否已执行结束[解决办法]在bat结束的时候写一个文

如何判断一个bat文件是否已执行结束
何判断一个bat文件是否已执行结束

[解决办法]
>>在bat结束的时候写一个文件吧,检测文件是否存在就可以了。

如果这样的话,在bat开始的时候要del这个文件

if exists filename then del filename
rem other operations


rem end of other operations
if not exists filename then copy nul filename
[解决办法]
不好意思,上面的代码不是delphi的

Delphi(Pascal) code
function WinExecAndWait32_v1(FileName: string; Visibility: integer): Cardinal;var  zAppName: array[0..512] of char;  zCurDir: array[0..255] of char;  WorkDir: string;  StartupInfo: TStartupInfo;  ProcessInfo: TProcessInformation;begin  StrPCopy(zAppName, FileName);  GetDir(0, WorkDir);  StrPCopy(zCurDir, WorkDir);  FillChar(StartupInfo, Sizeof(StartupInfo), #0);  StartupInfo.cb := Sizeof(StartupInfo);  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;  StartupInfo.wShowWindow := Visibility;  if not CreateProcess(nil,    zAppName,               { pointer to command line string }    nil,                    { pointer to process security attributes }    nil,                    { pointer to thread security attributes }    true,                   { handle inheritance flag }    CREATE_NEW_CONSOLE or   { creation flags }    NORMAL_PRIORITY_CLASS,    nil,                    { pointer to new environment block }    nil,                    { pointer to current directory name, PChar}    StartupInfo,            { pointer to STARTUPINFO }    ProcessInfo)            { pointer to PROCESS_INF }    then Result := INFINITE {-1} else  begin    WaitforSingleObject(ProcessInfo.hProcess, INFINITE);    GetExitCodeProcess(ProcessInfo.hProcess, Result);    CloseHandle(ProcessInfo.hProcess);  { to prevent memory leaks }    CloseHandle(ProcessInfo.hThread);  end;end;
[解决办法]
bat文件执行时会有新的进程或线程启动
可以利用WaitForSingleObject这个API函数来实现对进程或者线程的等待,直到它返回。
is that clear?

热点排行