Я внес некоторые изменения, надеюсь, это поможет. В настоящее время у меня есть пакетный файл, который я пытался изменить в соответствии со своей средой:
У меня есть 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 . . .
Я не уверен, почему он не берет значения из переменных в строке systeminfo cmd.