Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: wireshark on January 13, 2017, 05:21:06 AM
-
Подскажите пожалуйста как лучше решить задачу:
Есть несколько машин на которых работает Clickermann, в процессе работы надо вести лог, чтобы не собирать логи со всех машин пишу его в общий файл на шаре в сети но, чтобы идентифицировать от какой машины пришла запись нужно в лог передавать значение %COMPUTERNAME% или делать отдельный скрипт работы для каждой машины, что совсем не хочется, поскольку так я выкладываю один скрипт в сеть и при обновлении все просто его берут.
Соответственно если делать скрины, то потом непонятно от какой машины они пришли.
Как можно решить эту задачу? Пробовал прописывать переменные в виде %COMPUTERNAME% в префиксы названий и тд, но они не обрабатываются и передаются без подстановки значения.
Сейчас задача решается через запуск батника который уже пишет нужную информацию, но такое решение не совсем подходит.
-
Ну без батника тут не обойтись. Но имя компа вроде не должно меняться, поэтому достаточно 1 раз его получить, записать в файл и уже просто читать его от туда.
Вот рабочий пример. Если файла "ComputerName.txt" нет то получаем имя, в дальнейшем просто читаем имя из файла.
IF(TFCOUNT("ComputerName.txt") > 0)
$compName = TFREAD("ComputerName.txt", 1)
ELSE
TFWRITE("CN.bat", "Echo %COMPUTERNAME%>>ComputerName.txt")
WAITMS(100)
EXECUTE("CN.bat")
WAITMS(100)
$compName = TFREAD("ComputerName.txt", 1)
TFCLEAR("CN.bat", 1)
END_IF
LOGWRITE ("Имя компа: ", $compName)
LOGSHOW (1)
HALT
-
Так имя на русском не получить. И удаление батника лучше прописать в самом батнике в конце, тогда не нужно следить и не будет блокировки при фризе.
IF(TFCOUNT("ComputerName.txt") = 0)
TFWRITE("CN.bat", "chcp 1251>nul")
TFWRITE("CN.bat", "Echo %COMPUTERNAME%>>ComputerName.txt")
TFWRITE("CN.bat", "del /F /S CN.bat")
WAITMS(100)
EXECUTE("CN.bat")
WAITMS(100)
END_IF
$compName = TFREAD("ComputerName.txt", 1)
LOGWRITE ("Имя компа: ", $compName)
LOGSHOW (1)
HALT
Если же все имена на английском, то батник не нужен, сразу командная строка
EXECUTE("cmd.exe", STRCONCAT(" /C Echo %COMPUTERNAME%>>ComputerName.txt"))
WAITMS(100)
LOGWRITE ("Имя компа: ", TFREAD("ComputerName.txt", 1))
LOGSHOW (1)
HALT
-
Спасибо!