Быстрое и грязное решение:
Найдите надлежащим образом защищенную папку, в которой можно создать "файл блокировки рабочей станции", для которого другие файлы .bat могут проверить существование.
Создайте файл createLockFile.bat
в этой папке, содержащий следующий код:
@echo off
@echo "" > WORKSTATION_IS_LOCKED
Создайте другой файл deleteLockFile.bat
в этой папке, содержащий следующий код:
@echo off
del WORKSTATION_IS_LOCKED 2>nul
Создайте задачу, которая запускается при блокировке рабочей станции для запуска createLockFile.bat
и другую задачу, которая запускается при разблокировке рабочей станции для запуска deleteLockFile.bat
. Убедитесь, что в поле Start in:
указано значение пути к папке.
Теперь вы можете использовать следующий код в верхней части любого запланированного BAT-файла, чтобы выйти раньше, если рабочая станция заблокирована:
if exist "<containing folder path>\WORKSTATION_IS_LOCKED" (
exit /b
)
Смотрите здесь, чтобы позволить файлам .bat исполняться "невидимо" (т.е. без краткого отображения окна)