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