2014-09-22 25 views
3

我有一個批處理文件,它可以更新一個web項目並清理/重建它。我使它成爲網絡用戶的可執行文件。現在我想讓批處理只能由一個用戶同時執行。就像在編程語言中同步對象一樣。我可以阻止一個批處理文件被多個用戶同時執行

有沒有可能做到這一點?

+1

你是說可執行文件(按照你的主題)或批處理文件(根據你的問題文本)? – 2014-09-22 04:09:59

+0

你想同時阻止兩次執行嗎?或者你想允許多人運行它,但只允許給定的用戶運行一次?正如Harry Johnston所問 - 這是一個批處理文件還是一個exe文件? – dbenham 2014-09-22 04:39:18

+0

謝謝你的問題,這是一個批處理文件,而我正好想限制只有一個用戶可以一次運行它 – 2014-09-22 05:04:23

回答

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不是鎖文本文件的好存儲位置。它必須是一個對所有用戶都相同的目錄,服務器上的目錄對所有用戶都有寫入權限。

+0

謝謝,它很有用,你真棒 – 2014-09-22 06:10:09

相關問題