Этот скрипт пытается:
получить входные данные из txt-файла, представляющего собой список имен компьютеров,
проверить, еслифайл журнала на компьютере из списка превышает 1000 байтов,
создать текстовый отчет с именами тех компьютеров, где файл журнала превышает 1000 байтов,
создайте еще один текстовый отчет с именами компьютеров, размер файла которых не превышает 1000 байт.
Однако что-то идет не так.Любая помощь может быть хорошей.
@echo off
for /f "tokens=*" %%I in (computernames.txt)do call :checksz %%I
goto :eof
:checksz
setlocal
set file="\\%1\c$\data\info.log"
set min=1000
FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA
if %size% GTQ %min% (
echo. %1 >>logsizemin.txt
) ELSE (
echo. %1>>logsizemax.txt
)
Привет всем, спасибо за вашу ценную поддержку.Я поздравляю тех, кто задумал и создал этот сайт, действительно хорошо и полезно.Я внес несколько изменений в сценарий, который вы любезно предложили включить в него другие функции, но что-то не работает так, как мне хотелось бы ... как вы можете видеть, я использую editv32, чтобы скрыть пароль в моем пакете, принцип тот же, нокак вы можете видеть после проверки размера журнала, «maxlongsize.txt» используется для того, чтобы взять имена компьютеров, на которых выполняется следующее действие.Я хотел бы, чтобы действия выполнялись последовательно на всех компьютерах в файле "logsizemax.txt" с только одной аутентификацией в начале.Я заметил, что по какой-то причине иногда файл "logsizemin.txt" не создается, но я не понимаю, почему.Максимум было бы поместить в другой файл, такой как «компьютер недоступен», те ПК, которые не доступны в сети, но я абсолютно не представляю, как это реализовать.Надеюсь, я достаточно объяснил.Извините за плохой английский!Я думаю, вы понимаете мое намерение :).После партии
@setlocal
@echo off
editv32 -p "Enter username:" USR
editv32 -m -p "Enter password:" PWD
for /f "tokens=1" %%I in (computernames.txt) do call :checksz %%I
endlocal
goto :eof
:checksz
setlocal
set file="\\%1\c$\data\data.log"
set min=1000
type NUL>logsizemax.txt
type NUL>logsizemin.txt
if not exist %file% goto :eof
FOR /F "usebackq delims=" %%A IN ('%file%') DO set size=%%~zA
if %size% GEQ %min% ( echo %1>>logsizemax.txt ) ELSE ( echo %1>>logsizemin.txt )
endlocal
@setlocal
for /f "tokens=1" %%I in (logsizemax.txt) do call :sw %%I
endlocal
goto :eof
:sw
echo.
echo *****************************************
echo * VBS & Deploy script *
echo *****************************************
echo.
echo Run VBS and deploy script .....
psexec \\%1 -u %USR% -p %PWD% cscript "\\rep\Reg.vbs"
psexec \\%1 -u %USR% -p %PWD% cmd /c "\\rep\deploy.cmd"
echo.
echo **************************
echo * EXE Run *
echo **************************
echo.
echo Running exe .....
psexec -u %USR% -p %PWD% \\%1 "c:\Program Files\test.exe"
echo.
echo ***********************************
echo * Exe application launched *
echo ***********************************
echo.
goto END
:END
exit