我正嘗試使用批處理腳本刪除Windows 7計算機上承載的所有共享。在批處理中從Windows系統中刪除所有網絡共享
代碼
@echo off
REG QUERY HKLM\System\CurrentControlSet\Services\LanmanServer\Shares > %APPDATA%\shares.txt
findstr /I /V HKEY_LOCAL_MACHINE %APPDATA%\shares.txt | findstr /I /V HKLM >> %APPDATA%\shares2.txt
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1" %%S in (%APPDATA%\shares2.txt) do (
set tempy=%%S
net share "!tempy!" /delete
)
ENDLOCAL
shares.txt(後運行)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Shares
Test REG_MULTI_SZ CSCFlags=0\0MaxUses=4294967295\0Path=C:\Test\0Permissions=0\0Remark=\0ShareName=Docs\0Type=0
Sp aces REG_MULTI_SZ CSCFlags=0\0MaxUses=4294967295\0Path=C:\Test\0Permissions=0\0Remark=\0ShareName=Sp aces\0Type=0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Shares\Security
shares2.txt(運行後)
Test REG_MULTI_SZ CSCFlags=0\0MaxUses=4294967295\0Path=C:\Test\0Permissions=0\0Remark=\0ShareName=Docs\0Type=0
Sp aces REG_MULTI_SZ CSCFlags=0\0MaxUses=4294967295\0Path=C:\Test\0Permissions=0\0Remark=\0ShareName=Sp aces\0Type=0
我與兩股測試它,「測試」和「SP尖子」
我能夠刪除test
份額,但我無法刪除sp aces
份額,因爲"tokens=1"
只抓住第一個字。我怎樣才能調整它,使它適用於單詞和空格單詞?
1.'set temp = %% S' - >'set temp = %% S'或'set「temp = %% S」'; 2.不要使用變量名'temp',因爲這已經被系統使用... – aschipfl
將'tokens = 1'更改爲'tokens = *'(刪除前導空格)或'delims ='(不刪除任何東西)... – aschipfl
使用令牌= *雖然不是名稱,但是從第二個文本文件傳遞整行。而共享名稱的長度是任意的,所以我不能相應地設置令牌。 – Conash