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

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

viper69 22-11-2011 16:37 1800853

по IF подскажите
 
Вот такая штука получается. Нужно: смотрим папки, если там есть файлы (всякие) - копируем в другую папку и отправляем сообщение net send ...
>
if /i exist %D_FROM%\*.* (
xcopy /y/e/q/r %D_FROM\*.* %D_TO%\*.* && ^
ping -n 1 %adr% && net send %adr% SOOB && ^
del /q /s /f "%D_FROM%\*.*
)
>
Всё замечательно, когда папка непустая. А в пустой папке if exist ловит . и .. и всё равно срабатывает - пытается копировать и шлёт сообщение.
Как бы это победить в батничке (использование бата принципиально)
Подскажите кто чем может

El Sanchez 22-11-2011 18:25 1800961

viper69,
Код:

dir /b "%D_FROM%\*.*" 2>nul|findstr . >nul && (^
xcopy /y/e/q/r "%D_FROM%\*.*" "%D_TO%\*.*" && ^
ping -n 1 %adr% && net send %adr% SOOB && ^
del /q /s /f "%D_FROM%\*.*")


viper69 22-11-2011 19:51 1801039

Во блин, шаблонность мышления - а я все иф да фор мучаюб а туттак легко и просто. Век живи - век учись...
Санчес, cпасибо большое - выручил здорово!

megaloman 22-11-2011 23:21 1801188

Иф да фор тоже можно
Код:

FOR /F "usebackq tokens=2 delims=:" %%n IN (`xcopy /y /e /q /r "%D_FROM%\*.*" "%D_TO%\*.*"`) DO (
    If Not "%%n"==" 0." (
      del /q /s /f "%D_FROM%\*.*"
      Ping ...
    )
)



Время: 19:25.

Время: 19:25.
© OSzone.net 2001-