У меня есть файловый сервер с несколькими папками, которые нужно разделить. Иногда акции исчезают, и их необходимо повторно использовать (за пределами этого вопроса я рассматриваю это как отдельную проблему). На данный момент я ищу способ легко автоматизировать повторный общий доступ к папкам с помощью одного файла BAT, когда это происходит, чтобы я не вручную повторно делился несколькими десятками папок вручную.
Существует ограниченное количество определенных папок верхнего уровня, которые необходимо совместно использовать - Пользователи, Задания, Операции и т. Д. - это пока не проблема, я могу вручную указать их с помощью команды NET SHARE.
Я столкнулся с проблемой для нескольких папок, для которых также требуется общий доступ к всем подпапкам. Например, все папки в D: \ Shares \ 00_Users также должны быть общими.
У меня есть команда, которая предоставит общий доступ ко всем файлам в текущем каталоге, но не к файлам в другом каталоге, то есть мне нужно оставить копию BAT в общей папке, что не является хорошей идеей. Есть ли способ автоматизировать это, чтобы файл BAT совместно использовал каждую подпапку в другой папке?
Вот мой текущий код:
NET SHARE "NameOfShare=D:\Shares" /GRANT:Everyone,FULL /CACHE:None
FOR /D %%G IN (D:\Shares\00_Users\*.*) DO NET SHARE "%%G=%%G" /GRANT:Everyone,FULL /CACHE:None
Где я сталкиваюсь с проблемами, так это "%% G = %% G" - я хочу заменить первую часть параметра ТОЛЬКО именем папки, а не всем путем.
В идеале это должно разделять "D: \ Shares \ 00_Users \ JSmith" как общий ресурс с именем "JSmith".
Спасибо за помощь!
2 ответа
Просто используйте базовое имя и расширение, которые можно использовать в переменных FOR
, например: "%%G=%%~nG%%~xG"
Фиксированный код:
NET SHARE "NameOfShare=D:\Shares" /GRANT:Everyone,FULL /CACHE:None
FOR /D %%G IN (D:\Shares\00_Users\*.*) DO NET SHARE "%%~nG%%~xG=%%G" /GRANT:Everyone,FULL /CACHE:None
С помощью вышеупомянутого, это окончательная форма рабочего BAT-файла:
Полный код использован в качестве примера:
NET SHARE "D:\Business=Business" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Engineering=Engineering" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Jobs=Jobs" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Operations=Operations" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Sales=Sales" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Service=Service" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Scans=Scans" /GRANT:Everyone,FULL /CACHE:None
NET SHARE "D:\Users=Users" /GRANT:Everyone,FULL /CACHE:None
FOR /D %%G IN (D:\Engineering\*.*) DO NET SHARE "%%~nG%%~xG=%%G" /GRANT:Everyone,FULL /CACHE:None
FOR /D %%G IN (D:\Operations\*.*) DO NET SHARE "%%~nG%%~xG=%%G" /GRANT:Everyone,FULL /CACHE:None
FOR /D %%G IN (D:\Sales\*.*) DO NET SHARE "%%~nG%%~xG=%%G" /GRANT:Everyone,FULL /CACHE:None
FOR /D %%G IN (D:\Users\*.*) DO NET SHARE "%%~nG%%~xG=%%G" /GRANT:Everyone,FULL /CACHE:None
Похожие вопросы
Новые вопросы
windows
Написание программного обеспечения, специфичного для операционной системы Microsoft Windows: API, поведения и т. д. ОБЩАЯ ПОДДЕРЖКА WINDOWS НЕ ПО ТЕМЕ. Вопросы поддержки можно задать на https://superuser.com