vdereberya |
09-08-2010 14:00 1469999 |
wsh-скрипт для создания сетевой папки
Добрый день. Очень нужна ваша помощь!!! Не могу разобраться с такой проблемой: есть сеть в которой пользователи, удаленно на сервере, в определенной папке (скажем \\server\ user\) имеют возможность создавать каталоги. Нужен wsh-скрипт (или может что другое) который выводил бы диалог с пользователем с запросом имени создаваемой папки, и далее создавал на сервере в указанном каталоге папку с введенном именем и + в ней еще 5 заранее предусмотренных папок (перечень вложенных папок всегда один и тот же). Возможно есть что-то похожее в примерах – не могу найти, а самому написать пока слабо :(
|
vdereberya,
Так условиями задачи не предусматривается ни подключение, ни расшаривание папок на
удаленном ПК, то предполагаю что папка доступна как сетевой диск и решение будет такое:
Код:
Dim input, StrDSTFolder, StrLoctFolder
ArrSubFolders = Array("Folder1", "Folder2", "Folder3", "Folder4", "Folder5")
' Перечень вложенных папок
Input = InputBox("Введите имя папки")
StrDSTFolder = "F:\" ' Некая папка на сервере
StrLoctFolder = StrDSTFolder & Input & "\"
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace(StrDSTFolder)
objFolder.NewFolder(Input)
Wscript.Sleep 3000
Set objSubFolder = objShellApp.NameSpace(StrLoctFolder)
For Each StrSubFolder In ArrSubFolders
objSubFolder.NewFolder(StrSubFolder)
Next
Wscript.Quit 0
|
vdereberya |
09-08-2010 15:24 1470057 |
deepred огромное спасибо за код!!! Хочу только уточнить как бить если серверная папка не подключена как сетевой диск, а просто доступна по сети (напр. \\server\ user\) Чтение/запись в папку для пользователей - разрешено.
|
vitaliyboch |
09-08-2010 15:33 1470064 |
так нужно так и указать:
Код:
StrDSTFolder = "\\Server\Folder\" ' Некая папка на сервере
а запускать с компьютеров
|
vdereberya |
09-08-2010 15:42 1470070 |
Гениально! Огромное спасибо! А для того что бы в директории например «Folder1» создать еще подуровень, что нужно?
|
vdereberya,
приведенный код уже содержал ответ на Ваш вопрос, но тем не менее:
Код:
Dim input, StrDSTFolder, StrLoctFolder, StrDp2LoctFolder
ArrSubFolders = Array("Folder1", "Folder2", "Folder3", "Folder4", "Folder5")
Input = InputBox("Введите имя папки")
StrDSTFolder = "F:\"
StrLoctFolder = StrDSTFolder & Input & "\"
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace(StrDSTFolder)
objFolder.NewFolder(Input)
Wscript.Sleep 3000
Set objSubFolder = objShellApp.NameSpace(StrLoctFolder)
For Each StrSubFolder In ArrSubFolders
objSubFolder.NewFolder(StrSubFolder)
IF ArrSubFolders(0) = StrSubFolder Then
StrDp2LoctFolder = StrLoctFolder & ArrSubFolders(0) & "\"
Set objSubDp2Folder = objShellApp.NameSpace(StrDp2LoctFolder)
objSubDp2Folder.NewFolder("Dp2LoctFolder") ' В Folder1 вкладываем один каталог
End if
Next
Wscript.Echo "D O N E"
Wscript.Quit 0
|
vdereberya |
09-08-2010 17:26 1470146 |
Спасибо!
|
vdereberya |
09-08-2010 18:22 1470194 |
а как решить: при нажатии кнопки «Отмена» пишет «ошибка: Требуется объект objSubFolder» ?
|
vdereberya,
Нужно подредактировать начало сценария:
Код:
On Error resume Next
Dim input, StrDSTFolder, StrLoctFolder, StrDp2LoctFolder
ArrSubFolders = Array("Folder1", "Folder2", "Folder3", "Folder4", "Folder5")
Input = InputBox("Введите имя папки")
If IsEmpty(input) Then
WScript.Quit 0
End if
.........
|
vdereberya |
09-08-2010 18:48 1470213 |
Даже не знаю как благодарить! Огромное спасибо!
|
Здесь неточность:
читать дальше »
Цитата:
Цитата deepred
Код:
On Error resume Next
…
If input is nothing Then
Wscript.Quit 0
End if
|
с «Nothing» можно сравнивать только объекты. Здесь же «input» — простая переменная, при нажатии кнопки «Отмена» принимающая пустое значение («Empty»):
Код:
input = InputBox("Введите имя папки")
WScript.Echo TypeName(input)
На мой взгляд, «On Error resume Next» здесь не требуется и достаточно будет аналогичной проверки:
Код:
…
input = InputBox("Введите имя папки")
If IsEmpty(input) Then
WScript.Quit 0
End if
…
|
Iska,
Да, совершенно верно - поторопился, спасибо за замечание... Сценарий обновил по Вашему совету...
|
Время: 20:34.
© OSzone.net 2001-