Я пытаюсь автоматизировать простую, но повторяющуюся задачу для неграмотного друга. Я телевизионный редактор, но у меня есть простые знания об этом, поэтому я ценю ваши навыки и знания.Простой сценарий PowerShell, чтобы сделать каталог доступным для всех с разрешениями и отобразить его как общий сетевой диск.
На компьютере с Windows, с PowerShell доступны, я хотел бы сценарий (я действительно как GUI, но что бы мечтающего), к
Создайте новый каталог в специальный жесткий закодировано место - проверка, что ни одна из существующих каталогов с тем же именем не существует, и т.д.
новый каталог делятся с разрешением все, полный доступ на чтение/запись
новый каталог сопоставлен, как стойкие со следующим доступный driv букву, пропускающие буквы оптических носителей/считывателей карт.
NB: Как уже упоминалось, сетевой ресурс должен быть постоянным после перезагрузки.
Исследования показывают на 1 (но нуждается в большем количестве, чтобы проверить наличие дубликатов и т.д.):
# PowerShell creates a folder
$Location = "X:\Clients\"
New-Item -Path $Location -Name "My_New_Folder" -ItemType "directory"
#Invoke-Item $Location
Исследования показывают на 2: ? Нет идеи, где начать
исследований не предполагает для 3:
@echo off
setlocal
call :freedrive mydriveletter && goto :cont
echo ERROR: No free drive letter found.
goto :exit
:cont
echo Found drive letter: %mydriveletter%
goto :exit
rem Finds a free drive letter.
rem
rem Parameters:
rem %1 = Output variable name.
rem
rem Example:
rem call :freedrive mydriveletter && goto :cont
rem echo ERROR: No free drive letter found.
rem goto :EOF
rem :cont
rem echo Found drive letter: %mydriveletter%
:freedrive
setlocal EnableDelayedExpansion
set exitcode=0
set "output_var=%~1"
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
set "drive=%%i:"
rem If 'subst' fails, the drive letter is already in use.
rem This way we can even detect optical drives that have a drive
rem letter but no media in them, a case that goes undetected when
rem using 'if exist'.
subst !drive! %SystemDrive%\ >nul
if !errorlevel! == 0 (
subst !drive! /d >nul
goto :freedrive0
)
)
set exitcode=1
set drive=
:freedrive0
endlocal & set "%output_var%=%drive%" & exit /b %exitcode%
:exit
pause
Только что замечено для 3 Я предложил «подставку», но я бы предпочел «использование сети», для постоянной после перезагрузки, если кто-либо не может сообщить об этом иначе. Благодарю. – Ogriff