
저는 스크립팅에 익숙하지 않습니다. 서버 가동 시간을 확인하여 예상할 때 실제로 재부팅되었는지 확인해야 하는 작업이 있습니다.
input.txt
Google 검색을 통해 모든 서버 이름과 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 . . .
systeminfo cmd 행의 변수에서 값을 가져오지 않는 이유가 무엇인지 잘 모르겠습니다.
답변2
이것은 아마도 당신에게는 너무 늦었을 것입니다. 그러나 제가 최근에 그랬던 것처럼 비슷한 것을 찾는 다른 사람들에게는 유용할 것입니다...
명령줄에 올바른 정보를 지정하지 않았습니다. 또한 이 systeminfo
명령에는 가동 시간이 아닌 부팅 시간만 있습니다. 그러면 빈 파일이 생성됩니다.
systeminfo /s Server1 /u %login% /p %pwd% | find "System Boot Time" >> c:\Uptime\A.txt
cut
from을 사용하여 unixutils
파일을 더 정리할 수 있습니다 .