0
@echo off
FOR /F "usebackq" %%i IN (`hostname`) DO SET HOSTNAME=%%i
for /F %%a IN ('wmic /node:"%HOSTNAME%" share get path') DO (
IF "%%a"=="C:\windows" (
echo "Cannot remove ADMIN shared Drive" %%a
) ELSE (
NET SHARE %%a /DELETE
)
)
endlocal
我已经写了这个脚本作为Windows调度程序运行。脚本检查共享文件夹并删除共享文件夹。我面临的问题是,当我运行这个单独批处理文件找到共享文件夹并删除共享
wmic /node:"%HOSTNAME%" share get path
我得到:
Path
C:\windows
C:\
E:\
E:\someFolder
但是当我运行该脚本,它仅删除E:\和E:\ someFolder而不是C :. 我写了条件不删除C:\窗口,但为什么它跳过C :. 请帮忙。
UPDATE 其实我刚刚看到它没有删除任何C:/驱动器文件夹的共享?这是一个许可问题吗?
感谢您的解释。是的,但是即使如此,在进行了一些更改之后,FOR/F“usebackq”%% i IN('hostname')DO SET HOSTNAME = %% i FOR/F %% a IN('wmic/node:“ %HOSTNAME%“share get name')如果我将它保存在C:/中,并使用具有最高管理员权限的Windows调度程序运行,则DO(echo %% a \t NET SHARE %% a/Y/DELETE )endlocal。 –
是的,获得'name'而不是'path'似乎是一个好主意,但是继续使用双引号(在安全方面):'NET SHARE“%%〜a”/ Y/DELETE' – JosefZ