
Я не знаком со скриптингом. У меня есть задача, которая требует проверки времени работы сервера, чтобы убедиться, что они действительно перезагрузились, когда должны были.
Я просматривал поиск Google и нашел идею файла input.txt
, который содержит все имена серверов и output.txt
, который содержит результат.
Проблема в том, что каждый сервер имеет уникальный общий логин. Например, имя входа domain\server1
, пароль server1domain
. Мой входной файл выглядит так:
domain\server1, server1domain
domain\server2, server2domain
domain\sevrer3, server3domain
Я хотел бы использовать serverinfo /s | find "uptime" >>c:\output.txt
и output.txt
хотел бы быть:
domain\server1 uptime <uptime of server>
domain\server2 uptime <uptime of server>
domain\server3 uptime <uptime of server>
и так далее до конца input.txt
файла.
Может ли кто-нибудь создать очень простой пакетный файл?
решение1
Я сделал некоторые изменения, надеюсь, это поможет. На данный момент у меня есть пакетный файл, который я попытался изменить в соответствии со своей средой:
У меня есть input.txt, содержащий список имен моих серверов, где этот цикл выбирает имена серверов строка за строкой. В то же время я пытаюсь иметь уникальные учетные данные для входа в скрипте, таким образом мне не придется вручную вводить учетные данные для входа для них. Вот мой скрипт. Проблема, с которой я сталкиваюсь, заключается в том, что учетные данные для входа не передаются как значения при выполнении systeminfo.exe.
for /f "delims=" %%a in (c:\Uptime\Input.txt) do (
echo %%a
set x=yellow
set login=%x%%%a
set pwd=%%a%x%
echo %login% pwd %pwd%
systeminfo /s %%a /u %login% /p %pwd% | find "System Up Time" >> c:\Uptime\A.txt
pause
)
При запуске этого пакетного файла я получаю следующее:
C:\Uptime>(
echo Server1
set x=yellow
set login=Server1 <- it should be: yellowServer1
set pwd=Server1 <- it should be: Server1yellow
echo pwd <- not showing the values of variables from above, should be: yellowServer1 Server1yellow
systeminfo /s Server1 /u /p | find "System Up Time" 1>>c:\Uptime\A.txt
pause
)
Server1
pwd
ERROR: Invalid Syntax. Value expected for '/u'.
Type "SYSTEMINFO /?" for usage.
Press any key to continue . . .
Я не уверен, почему он не берет значения из переменных в строке cmd systeminfo.
решение2
Для вас это, возможно, уже слишком поздно, но должно быть полезно тем, кто ищет что-то подобное, как это недавно сделал я...
Вы не указываете правильную информацию в командной строке. Также команда systeminfo
имеет только время загрузки, а не время работы. Это создало бы пустой файл.
systeminfo /s Server1 /u %login% /p %pwd% | find "System Boot Time" >> c:\Uptime\A.txt
Вы можете использовать cut
from unixutils
для дополнительной очистки файла.