Войти

Показать полную графическую версию : [решено] Проверка наличия папки, запись в лог


yura_
24-03-2016, 11:51
Всем день добрый , будь немного больше времени поковырялся бы сам . но у нас как всегда нужно было еще вчера , так что прошу помощи)

Есть список ПК (пусть будет 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
Пойдет?
Сделай главный файл, в него вставь этот код.
Рядом положи 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
Спасибо большое помог!




© OSzone.net 2001-2012