Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка и создание папки в сети

Ответить
Настройки темы
CMD/BAT - [решено] Проверка и создание папки в сети

Новый участник


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

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


Доброго времени суток Господа.

Я начинающий системный администратор в компании где есть больше 100 ПК.
Решил немного автоматизировать работу. Но со командной строкой и ВАТ - файлами не очень знаком, то что пытаюсь сам сделать пока только маленькие ват-ники .
Прошу вашей помощи.

В доменне есть в сети 100 компов, я со своего компа под доменным админом логинюсь .
Нужен ВАТ ник который ищет на компах в доменне на диске d:\ папку work а если ее там нету то создать.

Вот сделал ват ник на своем компе работает отлично

dir e:\"WORK"
if not exist do mkdir "e:\WORK"

помогите как это все сделать и на сеттевых компах.
Заранее благодарен.

Отправлено: 12:51, 05-09-2017

 

Ветеран


Contributor


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

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


Рискую быть подвергнутым остракизму, но мне не нравится идея отдельного файла, все компы прописал в самом батнике
Код: Выделить весь код
@Echo Off
cls

Set "ShareDisk=D$"
Set "OutFold=Work"

FOR /F "usebackq Skip=2 tokens=1 delims=[]" %%n IN (`Find /I /N ":List_Computers" "%~dpnx0"`) DO Set /A NSkip=%%n
FOR /F "usebackq tokens=*" %%s IN (`more +%NSkip% "%~dpnx0"`) DO (If /I "%%s"=="GoTo :Eof" GoTo :Continue) &Call :Out \\%%s
:Continue

Pause
GoTo :Eof

:Out
	If Exist "%1\%ShareDisk%\" (
		If Not Exist "%1\%ShareDisk%\%OutFold%\" (
			Md "%1\%ShareDisk%\%OutFold%"
			If Not Exist "%1\%ShareDisk%\%OutFold%\" Echo Folder %1\%ShareDisk%\%OutFold% not created.
		) Else (
			Echo Folder %1\%ShareDisk%\%OutFold% already exists
		)
	) Else (
		Echo Disk %1\%ShareDisk% not Found
	)	
GoTo :Eof

:List_Computers
PC3
PC4
PC5
PC9
PC11
GoTo :Eof
Добавил вывод информационных сообщений
По письмам трудящихся, вот с отдельным файлом
Код: Выделить весь код
@Echo Off
cls

Set "ShareDisk=D$"
Set "OutFold=Work"
Set "ListComp=Z:\Box_In\List.txt"

FOR /F "usebackq tokens=*" %%s IN ("%ListComp%") DO Call :Out \\%%s

Pause
GoTo :Eof

:Out
	If Exist "%1\%ShareDisk%\" (
		If Not Exist "%1\%ShareDisk%\%OutFold%\" (
			Md "%1\%ShareDisk%\%OutFold%"
			If Not Exist "%1\%ShareDisk%\%OutFold%\" Echo Folder %1\%ShareDisk%\%OutFold% not created.
		) Else (
			Echo Folder %1\%ShareDisk%\%OutFold% already exists
		)
	) Else (
		Echo Disk %1\%ShareDisk% not Found
	)	
GoTo :Eof
В файле Z:\Box_In\List.txt
Код: Выделить весь код
PC3
PC4
PC5
PC9
PC11

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


Последний раз редактировалось megaloman, 05-09-2017 в 16:05.

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

Отправлено: 15:46, 05-09-2017 | #11



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

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


Новый участник


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

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


А куда вашу строку влепить что бы работало ?

Цитата alpap:
@Echo Off
cls
Set "ShareDisk=D$"
Set "OutFold=Work"
FOR /F %%s IN ('Net view') DO Call :Out %%s
GoTo :Eof
:Out
Set "CompName=%1"
If %CompName:~0,2%== \\ If Exist "%CompName%\%ShareDisk%\" (
If Not Exist "%CompName%\%ShareDisk%\%OutFold%\" Md "%CompName%\%ShareDisk%\%OutFold%"
)
GoTo :Eof »
Мегаломан, Вы просто гуру батников, огромное при огромное спасибо

Еще есть несколько заданий у меня, но все же хотелось бы самому научиться писать бат файлы, может кто посоветует хорошую литературу ?

Последний раз редактировалось azisis, 05-09-2017 в 16:33.


Отправлено: 16:23, 05-09-2017 | #12


Ветеран


Contributor


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

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


azisis,
Если все компы, кроме исключений
Код: Выделить весь код
@Echo Off
cls

Set "ShareDisk=D$"
Set "OutFold=Work"
Set "CompExclude=PC1 PC2 P10"

FOR /F %%s IN ('Net view') DO Call :Out %%s
Pause
GoTo :Eof

:Out
	Set "CompName=%1"
	If %CompName:~0,2%==\\ Call :Exclude %1 %CompExclude%
GoTo :Eof

:Exclude
	If "%2"=="" GoTo :Eof
	If /I "%1"=="\\%2" Echo Computer %1 Excluded &GoTo :Eof
	Shift /2
	If Not "%2"=="" GoTo :Exclude
 
	If Exist "%1\%ShareDisk%\" (
		If Not Exist "%1\%ShareDisk%\%OutFold%\" (
			Md "%1\%ShareDisk%\%OutFold%"
			If Not Exist "%1\%ShareDisk%\%OutFold%\" (
				Echo Folder %1\%ShareDisk%\%OutFold% not created.
			) Else (
				Echo Folder %1\%ShareDisk%\%OutFold% created.
			)
		) Else (
			Echo Folder %1\%ShareDisk%\%OutFold% already exists
		)
	)	
GoTo :Eof
Код "разбух" из за того, что навставлял информационных сообщений
azisis, не заставляйте меня краснеть, Iska, например, многократно меня гурее, причём в разных областях, и много много других.

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


Последний раз редактировалось megaloman, 05-09-2017 в 17:06.


Отправлено: 17:00, 05-09-2017 | #13


Новый участник


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

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


У меня еще возник вопрос не по этой теме , немного поискал и сделал батник для сброса статики на дхцп, но для локального компа, как можно сделать что бы на сетевом компе в домене сбрасывало статику и прописывало дхцп ?
Вот мой пример :
netsh interface ip set address name="LAN" source=dhcp
netsh interface ip set dns name="LAN" source=dhcp


как то можно сделать что бы было типа ?

\\uapc003 netsh interface ip set address name="LAN" source=dhcp
\\uapc003 netsh interface ip set dns name="LAN" source=dhcp

Отправлено: 13:46, 06-09-2017 | #14


Ветеран


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

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


Цитата azisis:
У меня еще возник вопрос не по этой теме »
azisis, тут принят формат «Один вопрос — одна тема», а не «Один участник — одна тема». И Вы правильно сделали, что завели новую тему. Ответил там же.

Отправлено: 18:01, 06-09-2017 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка и создание папки в сети

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Проверка существования и создание трех файлов slip. Скриптовые языки администрирования Windows 1 05-10-2014 18:24
2008 R2 - Создание отдельной папки для каждого пользователя локальной сети (под логином и паро) sokol140387 Windows Server 2008/2008 R2 9 31-08-2012 11:11
Прочие - Создание, наложение и проверка ЭЦП Kapuha Программное обеспечение Windows 4 19-08-2011 08:01
PowerShell - проверка по имени папки AntiZero Скриптовые языки администрирования Windows 0 24-03-2011 12:16




 
Переход