Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - проверить наличие папок

Ответить
Настройки темы
Любой язык - проверить наличие папок

Аватара для alek2012

Пользователь


Сообщения: 57
Благодарности: 2

Профиль | Отправить PM | Цитировать


Всем привет. Может кто то писал такой скрипт, чтобы по списку пользователей проверял наличие существующих папок в нужных директориях
с таким же названием как имя пользователя, например есть пользователи admin и admin1
нужно проверить есть ли в директориях \\srv1\ и \\srv2\ папки с именами admin и admin1 , если есть вывести в файл что обнаружены

Отправлено: 11:31, 05-06-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


В чём у Вас сложность написания?

Отправлено: 11:46, 05-06-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для alek2012

Пользователь


Сообщения: 57
Благодарности: 2

Профиль | Отправить PM | Цитировать


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

Отправлено: 12:36, 05-06-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата alek2012:
а то времени сейчас нет »
Прямо таки совсем никак не выделите и десяти минут?! «Не верю!»

Отправлено: 13:49, 05-06-2013 | #4


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Цитата alek2012:
есть ли в директориях \\srv1\ и \\srv2\
а где директории? ИМХО, здесь имена серверов, должно быть что-то наподобие \\srv1\траляля. В этом случае можно бы было бы написать
Код: Выделить весь код
Dir "\\srv1\траляля\admin" /s /b /A:D
Dir "\\srv1\траляля\admin1" /s /b /A:D
Dir "\\srv2\траляля\admin" /s /b /A:D
Dir "\\srv2\траляля\admin1" /s /b /A:D

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 05-06-2013 в 15:30.


Отправлено: 15:23, 05-06-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


megaloman, навряд ли потребно с «/s».

Отправлено: 16:29, 05-06-2013 | #6


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Iska, телепатией не страдаю, при той постановке приходится фантазировать по полной программе. Вполне возможно, надо определить наличие "\\srv1\admin" и т д, тогда задача вообще неинтересная, а я вот изобрёл способ разнообразить себе жизнь Вот возможный вариант
Код: Выделить весь код
@Echo Off

Call :kuku "\\Srv1\Admin"
Call :kuku "\\Srv2\Admin"
Call :kuku "\\Srv1\Admin1"
Call :kuku "\\Srv2\Admin1"

Goto :Eof

:Kuku
if exist %1 (Echo %1 имеется) Else (Echo %1 отсутствует)
Кстати, почему-то в одну строку наманер
Set A="\\Srv1\Admin\"& if exist %A% (Echo %A% имеется) Else (Echo %A% отсутствует)
у меня не получилось, что-то неверно в синтаксисе.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 05-06-2013 в 19:13.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:11, 05-06-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Iska, телепатией не страдаю, при той постановке приходится фантазировать по полной программе. »
Это — да, согласен.


Цитата megaloman:
Кстати, почему-то в одну строку наманер
Set A="\\Srv1\Admin\"& if exist %A% (Echo %A% имеется) Else (Echo %A% отсутствует)
у меня не получилось, что-то неверно в синтаксисе. »
Всё верно. Просто «%A%» раскрывается в момент интерпретации всей строки, целиком, т.е.:
Код: Выделить весь код
Set A="\\Srv1\Admin\"& if exist %A% (Echo %A% имеется) Else (Echo %A% отсутствует)
Естественно, переменная окружения «A» к этому моменту пустая. Это поведение равнозначно поведению переменной окружения внутри скобок («for … do (…)», «if … (…) else (…)» и т.п.).

Вот, посмотрите:
Код: Выделить весь код
rem @echo off
setlocal enableextensions enabledelayedexpansion


set "sPath=%~dp0" & if exist "%sPath%" (echo [%sPath%] exists) else (echo [%sPath%] not found)

endlocal
exit /b 0
Цитата:
Код: Выделить весь код
E:\Песочница\0268>rem @echo off

E:\Песочница\0268>setlocal enableextensions enabledelayedexpansion

E:\Песочница\0268>set "sPath=E:\Песочница\0268\"   & if exist "" (echo [] exists )  else (echo [] not found )
[] not found

E:\Песочница\0268>endlocal

E:\Песочница\0268>exit /b 0
Переменная «sPath» раскрывается в момент интерпретации строки, и потому — пуста.

Можно ещё так показать этот момент:
Код: Выделить весь код
rem @echo off
setlocal enableextensions enabledelayedexpansion

set "sPath=bla-bla-bla"

set "sPath=%~dp0" & if exist "%sPath%" (echo [%sPath%] exists) else (echo [%sPath%] not found)

endlocal
exit /b 0
Цитата:
Код: Выделить весь код
E:\Песочница\0268>rem @echo off

E:\Песочница\0268>setlocal enableextensions enabledelayedexpansion

E:\Песочница\0268>set "sPath=bla-bla-bla"

E:\Песочница\0268>set "sPath=E:\Песочница\0268\"   & if exist "bla-bla-bla" (echo [bla-bla-bla] exists )  else (echo
 [bla-bla-bla] not found )
[bla-bla-bla] not found

E:\Песочница\0268>endlocal

E:\Песочница\0268>exit /b 0
Вывод — нужно использовать отложенное раскрытие переменной:
Код: Выделить весь код
rem @echo off
setlocal enableextensions enabledelayedexpansion

set "sPath=%~dp0" & if exist "!sPath!" (echo [!sPath!] exists) else (echo [!sPath!] not found)

endlocal
exit /b 0
Цитата:
Код: Выделить весь код
E:\Песочница\0268>rem @echo off

E:\Песочница\0268>setlocal enableextensions enabledelayedexpansion

E:\Песочница\0268>set "sPath=E:\Песочница\0268\"   & if exist "!sPath!" (echo [!sPath!] exists )  else (echo [!sPath
!] not found )
[E:\Песочница\0268\] exists

E:\Песочница\0268>endlocal

E:\Песочница\0268>exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:31, 05-06-2013 | #8


Аватара для alek2012

Пользователь


Сообщения: 57
Благодарности: 2

Профиль | Отправить PM | Цитировать


Основная задача заключалась, в том что нужно было взять отключенных пользователей в АД и сравнить их названиями профилей, которые имеют такое же название своих каталогов

Отправлено: 17:14, 07-06-2013 | #9


Аватара для alek2012

Пользователь


Сообщения: 57
Благодарности: 2

Профиль | Отправить PM | Цитировать


еще такой вопрос, как на PS взять список названий из файла и проверить их существование в директориях например с помощью:

Test-Path \\srv1\ только список имен директорий профайлов admin, admin1, admin2 взять из 1.txt к примеру

Отправлено: 18:09, 07-06-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - проверить наличие папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Проверить наличие/отсутствие интернета rhamzin Скриптовые языки администрирования Windows 2 21-02-2013 17:22
VBS/WSH/JS - [решено] Как проверить наличие прав администратора Dark_Timur Программирование и базы данных 12 19-12-2012 10:55
CMD/BAT - Как проверить наличие текста в файле mamont1 Скриптовые языки администрирования Windows 6 16-09-2010 16:32
[решено] Проверить наличие процесса по маске cleric1985_n AutoIt 1 13-03-2010 16:58
Как проверить наличие процесса? Не флужу AutoIt 0 13-01-2010 07:31




 
Переход