我可以防止批处理文件同时由多个用户执行

时间:2014-09-22 03:09:44

标签: windows batch-file user-management

我有一个批处理文件,可以更新Web项目并清理/重建它。我让它可以为网络用户执行。现在我想让批处理器只能由一个用户同时执行。就像在编程语言中同步对象一样。

是否有可能这样做?

1 个答案:

答案 0 :(得分:2)

检查批处理文件是否已在运行的简单解决方案是使用文件系统。

批处理文件可以检查文件是否存在并在这种情况下拒绝执行,否则它会创建文件,运行命令并最终删除文件。

@echo off
if exist "C:\Temp\BatchLock.txt" goto BatchRunning
echo Batch file is running by %username%.>C:\Temp\BatchLock.txt

rem All other commands of the batch file

del C:\Temp\BatchLock.txt
goto :EOF

:BatchRunning
type C:\Temp\BatchLock.txt
echo/
echo Please run the batch later again.
echo/
echo Press any key to exit ...
pause >nul

当然C:\Temp不是锁文本文件的良好存储位置。它必须是一个对所有用户都相同的目录,服务器上的目录对所有用户都具有写权限。