Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Проверка наличия папки, запись в лог (http://forum.oszone.net/showthread.php?t=313074)

yura_ 24-03-2016 11:51 2619260

Проверка наличия папки, запись в лог
 
Всем день добрый , будь немного больше времени поковырялся бы сам . но у нас как всегда нужно было еще вчера , так что прошу помощи)

Есть список ПК (пусть будет pk.txt) нужно что бы батник пробежался по списку проверяя одну папку на всех пк (\\$computername\C$\Program Files\test1 )

если папки нету то записать в лог
вот что пока пришло в голову

первый проверяет доступность пк по списку

@echo off
*
for /f "usebackq tokens=1*" %%i in ("pk.txt") do (
*start "%%j " cmd /c "<nul>%%i.txt set/p=%%i - & ping -w 1000 %%i| >>%%i.txt (>&2 findstr/rc:"[0-9]: "&& echo OK|| echo NO)"
*call set x=%%i.txt+%%x%%
)
>nul (ping -n 16 ""& copy %x%nul "log.txt"/b)& del %x:+= %& start "" "log.txt"
*
exit/b 0


второй проверяет само наличие папки и записывает лог есть или нету


@Echo Off

Set Papka=<\\computername\C$\Program Files\test1>

If Exist "%Papka%\*.*" Echo Dir %Papka% exist >> logyes.txt
If Not Exist "%Papka%\*.*" Echo dir %Papka% doesnt exist >>lognot.txt

загвоздка в том что не могу додуматься как заставить это все работать воедино
и брать переменную \\computername\ из списка pk.txt


Зарание спасибо

advin 24-03-2016 18:02 2619438

Пойдет?
Сделай главный файл, в него вставь этот код.
Рядом положи base.txt в него в столбик имена пк:
pc1
pc1
pc1

Код:

cls
@ECHO off
ECHO ╔═════════════════════════════════════════════════════════════╗
ECHO ║                  Проверка наличия папки                    ║
ECHO ╚═════════════════════════════════════════════════════════════╝
FOR /f %%h in (base.txt) do (
ECHO                                          ... >> Check.log
ECHO ████        Запущено на: %%h >> Check.log
ECHO █        Соединение успешно установлено                - %date% - %time:~0,8% >> Check.log
PING %%h /n 1 | FIND "(0%" > nul 2>&1 && (
ECHO       
cls
ECHO ---------------------------------------------- >> Check.log
if exist "\\%%h\c$\Program Files\test1"        ECHO        + Обнаружено >> Check.log
if not exist "\\%%h\c$\Program Files\test1\"    ECHO          - Не обнаружено >> Check.log
ECHO ---------------------------------------------- >> Check.log
ECHO █ >> Check.log
ECHO ████        Завершено на: %%h >> Check.log
ECHO                                          ... >> Check.log
 )
PING %%h /n 1 | FIND "(0%" > nul 2>&1 || (
ECHO %%h - КОМПЬЮТЕР НЕ ОТВЕЧАЕТ - %date% - %time:~0,8% >> WARNING_Check.log
ECHO ████        Завершено на: %%h >> WARNING_Check.log
  )
)

На выходе лог Check.log

Код:

                                        ...
████        Запущено на: pc1
█        Соединение успешно установлено                - 24.03.2016 - 17:58:23
----------------------------------------------
        + Обнаружено
----------------------------------------------

████        Завершено на: pc1
                                        ...
                                        ...
████        Запущено на: pc2
█        Соединение успешно установлено                - 24.03.2016 - 17:58:24
----------------------------------------------
        - Не обнаружено
----------------------------------------------

████        Завершено на: pc2
                                        ...

Если пк не найден, он запишет в другой файл WARNING_Check.log

yura_ 28-03-2016 14:17 2620632

Спасибо большое помог!


Время: 15:33.

Время: 15:33.
© OSzone.net 2001-